lee*_*ell 3 asynchronous node.js
我正试图在使用process.nextTick时解决问题.下面我使用异步库来控制我的代码流,并想知道我是否应该在最终回调中调用nextTick.
async.parallel([
function (callback) {
// do something
callback(data);
},
function (callback) {
// do something
callback(data);
}
],
// callback
function (data) {
process.nextTick(function () {
// do something
});
});
Run Code Online (Sandbox Code Playgroud)
如果不确切知道你的"做某事"是什么,我认为nextTick在这种情况下你不需要使用任何理由.您可以使用nextTick,当你有理由推迟功能执行事件循环的下一次迭代.您可能需要阅读了解process.nextTick更多详细信息.
另外,请注意async的parallel任务完成回调接受参数err, data,因此您应该这样做:
async.parallel([
function (callback) {
// do something
callback(null, data);
},
function (callback) {
// do something
callback(null, data);
}
],
// callback
function (err, data) {
if (err) throw err;
// do something
});
Run Code Online (Sandbox Code Playgroud)
主要区别在于,如果其中一个并行任务返回错误(callback使用truthy第一个参数调用),则立即调用最终回调.