【发布时间】:2015-11-24 01:11:10
【问题描述】:
我很难使用 async.eachSeries。我已经创建了一个代码和平来说明。
const arr = [1, 2, 3, 4, 5, 6, 7];
function doJob(callback){
debugger; //#1
async.eachSeries(arr, function(task, cb){
console.log('Starting checking function');
debugger; //#2
if(task%2 === 0){
debugger; //#3
console.log('Task even: ' + task);
r.exists("somekty", function(err ,result){
if(err || result){
debugger; //#4
cb(null);
}else{
debugger; //#5
cb(null);
}
});
}else{
debugger;//#6
console.log('Task odd: ' + task);
cb(null);
}
debugger;//#7
}, function(err){
callback()
});
}
setTimeout(function(){
doJob(function(){
console.log('All done!');
})
}, 1000)
当我执行上面的代码时,预期的结果应该是(对我来说): 命中:#1
1 次迭代:#2 - #6
2 次迭代:#2 - #3 - #7 - #4||#5
3 次迭代:.... ...
继续前进....但是当它第一次进入具有异步函数(redis)的“if”内部时,它只会进入#7并且永远不会在#4或#5处停止并且完成代码。为什么?
我正在使用 Iron-node 进行调试。
【问题讨论】:
标签: node.js debugging asynchronous node-inspector