【发布时间】:2016-12-30 04:17:56
【问题描述】:
我有一个通过数组调用 async.each 的函数。在 asycn.each 中有一个函数,它通过第一个函数传递的数据调用 async.each。
var f1 = function(){
var b = [o1,o2,o3,o4,o5,o6....];
async.forEach(b, function(obj, cb){
f2(obj, function(){
cb();
})
}, function(err){
})
};
var f2 = function(obj, c2){
async.forEach(obj, function(obj2,cb){
// some db operation
return dbData;
cb();
}, function(){
// do asynch operation on dbData and update value in db
})
};
现在,我的疑问是,当 f2 对 f1 中传递的第一个项目执行 async.forEach 时,回调被调用并且回调对 f2 中传递的 obj 执行一些操作。但是由于这是并行执行的,所以当第一个项目的回调被调用时,它是否会具有相同的 obj 对象来继续操作,或者 obj 的值可能与其他 asych 不同。每个任务已通过相同的函数调用。
【问题讨论】:
-
在 f2 的 forEach 中,
cb()永远不会因为return dbData;而被调用
标签: node.js asynchronous