我使用async.series
作为;
async.series([
function(callback) {
callback();
},
function(callback) {
if(condition is satified){
//continue to the next function
callback();
}else{
/*condition is not satisfied, do not continue cut the async.series
and continue to from
//continue from here part */
}
},
function(callback) {
//if condition in second function is not satisfied skip
callback();
},
function(callback) {
//if condition in second function is not satisfied skip
callback();
}
]);
//continue from here
例如,假设第二个函数中存在条件。如果条件不满意,我想削减async.series
。
我该怎么做?
答案 0 :(得分:0)
您必须运行错误非空的回调:
callback(something);
而不是:
callback();
如果您添加回调,请执行async.series
async.series([
function(callback) {
if (someCondition) {
// this will stop the async.series flow:
return callback('some error');
}
// this will continue the async.series flow:
callback();
},
// more functions go here
], (err) => {
if (err) {
// here you will get the error that was signaled
// by some of the functions
} else {
// everything completed with no errors
}
});
如果您的所有函数都返回了不同的错误,那么您可以检查哪一个函数终止了async.series
流。
答案 1 :(得分:0)
callback
函数有2个参数。它的签名是 -
callback(error, data);
如果在第二个函数中收到错误,则可以在回调中传递该错误。因此,series()
函数将停止执行,并将调用其错误处理程序。所以这样做 -
async.series([
function(callback) {
callback();
},
function(callback) {
if(condition is satified){
//continue to the next function
callback();
}else{
callback('This is an error');
/*condition is not satisfied, do not continue cut the async.series
and continue to from
//continue from here part */
}
], function(error, result){
if(error){
// execution is stopped at 2nd function
console.log(error); // This is an error
}
});