var async = require('async');
var list = [1,2,3,4,5];
var functions = [];
for(i in list){
var f = function(call){
console.log(list[i]);
call();
}
}
async.parallel(functions,function(err){
if(err) throw err;
console.log('finish first try');
});
async.parallel([function(call){
for(i in list){
console.log(list[i]);
if(i == list.length-1)
call();
}
}],function(err){
if(err) throw err;
console.log('finish second try');
});
日志:
先完成尝试
1
2
3
4
5
完成第二次尝试
添加为数组时,功能不起作用。为什么我不能在第一次看到这些数字?为什么不回来?
答案 0 :(得分:0)
因为你没有填充functions
数组而需要这个:
for(i in list){
var f = function(call){
console.log(list[i]);
call();
}
functions.push(f);
}
或者如果您需要迭代i
:
for(i in list){
var f = (function(i) {
return function(call){
console.log(list[i]);
call();
};
})(i);
functions.push(f);
}