我在async.waterfall( [] , function() )
内使用async.parallel。代码如下:
async.waterfall(
[
function first(callback) {
//some processing
callback();
},
function second(result, callback) {
//Here i query the db
model.findAll()
.then(function(success) {
async.parallel(
[array_of_functions],
function done(err, result) {
if (err) {
callback(err);
}
}
)
})
.catch(function(err) {
callback(err);
})
}
],
function done(err, result) {
if (err) {
throw new Error(err);
}
}
)
有时我在控制台上收到错误:
已经调用了回调
错误消息告诉多次调用回调。我认为callback(err)
和async.parallel()
内的.catch()
会同时被调用。
这实质上意味着如果发生错误 INSIDE .then()
,它会被.catch()
捕获。这是怎么回事?其次,如果我希望将嵌套回调中的错误传播到done()
的最终async.waterfall()
函数,我该怎么做呢。