[英]Where to define callback for async.series in node.js
我想在異步任務完成時調用一個回調。 以下是相同的代碼:
var async = require("async");
function callMeWhenDone(err, result){
if(err) console.log('Error Occurred');
console.log('Callback called');
console.dir(result);
}
function tasks() {
console.log('Start executing tasks');
var tasks = [];
var result = {};
tasks.push(function(callMeWhenDone) {
console.log('Getting some data');
callMeWhenDone(null, result);
});
tasks.push(function(callMeWhenDone) {
console.log('Second function called');
callMeWhenDone(null, result);
});
async.series(tasks, function(err, result){
console.log('All done');
callMeWhenDone(err, result);
});
}
tasks();
在上面的代碼中,異步任務完成后未調用callMeWhenDone
回調方法。
我如何在異步任務中調用它。
這是因為您為async
任務回調參數指定了相同的名稱callMeWhenDone
。 給該參數起一個不同的名稱,例如cb
,然后在完成每個任務時都將它們都調用:
function tasks() {
console.log('Start executing tasks');
var tasks = [];
var result = {};
tasks.push(function(cb) {
console.log('Getting some data');
callMeWhenDone(null, result);
cb(null, result);
});
tasks.push(function(cb) {
console.log('Second function called');
callMeWhenDone(null, result);
cb(null, result);
});
async.series(tasks, function(err, result){
console.log('All done');
callMeWhenDone(err, result);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.