[英]Callback in async.each
我有异步问题。 对于每个元素,我必须调用一个异步函数
这是我的示例对象
[ { bar: 'foo',
buz: [ [Object], [Object], [Object] ] },
{ bar: 'foo2', buz: [ [Object] ] } ]
-----
buz = { _id: '55555555ffffff000010200a', name: 'foo }
对于每个buz._id,我必须调用另一个异步方法“ item.someAsyncCall”
async.each(req.body.roles,
function(item, callback){
callback();
async.each(item.site,
function(item, callback){
item.someAsyncCall(function (){
// Async call is done, alert via callback
console.log('inside==> '+result);
callback();
});
},
function(err){
if (err) {
console.log('A file failed to process');
} else {
console.log('FIRST');
}
}
);
},
function(err){
if (err) {
console.log('A file failed to process');
} else {
console.log('Second');
}
}
);
console.log('OUT ==>');
结果:
内部==>否
内部==> true
内部==>否
第一
内部==>否
第一
但是从不叫秒,从不叫OUT ==>
对于两个嵌套(并行)for循环的异步等效项,请尝试
async.each(outerList, function (item, outerCallback) {
async.each(item.innerList, function (innerItem, innerCallback) {
doSomethingAsync(innerItem, innerCallback);
}, outerCallback);
}, function (err) {
// everything is done, or you get an error
});
一种更简单的方法可能是将列表弄平,而只在该扁平化的列表上使用单个async.each
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.