node.js应用程序中的async.js问题
async.js issues in node js application
我有两个嵌套的async.each。它们看起来像:
async.each(result, function(row, callbackrow) {
tot = 0;
console.log('UID:', row.uid);
async.each(row.vbs, function(vb, callback){
checkInteractions(row.uid, vb.vbNID, function(data){
console.log(data);
callback();
});
}, function(err){ console.log('done 1'); });
callbackrow();
}, function(err){ console.log("done all"); });
我的问题是,checkinteraction
异步调用会导致问题。如果没有它,控制台日志将从第二个异步调用,每个异步调用第一个异步。有了它,我得到了done all消息,在嵌套的(第二个)async之后,每个异步执行它的代码。我需要它像一个for内部的同步调用。对于第一个For的每个元素,在进入第一个For中的下一个索引之前要执行的第二个元素。
我认为callbackrow
应该作为内部循环的最终回调传递,这样外部循环就知道何时进行下一次迭代,比如:
async.each(result, function(row, callbackrow) {
tot = 0;
console.log('UID:', row.uid);
async.each(row.vbs, function(vb, callback){
checkInteractions(row.uid, vb.vbNID, function(data){
console.log(data);
callback();
});
}, function(err){
console.log('done 1');
callbackrow();
});
}, function(err){ console.log("done all"); });
相关文章:
- node.js应用程序中的async.js问题
- async.js和系列问题
- async问题,JS Promise无法返回结果,但可以使用console.log
- Node.js时使用async是有意义的
- node.js,async,restify:无法使restify调用在async.series内同步
- 如何防止bind在使用async.series时更改node.js中的原始对象
- 使用节点确定成功/失败.js函数 async.retry
- Node js async.series无法使用Express应用程序--响应发生得太早
- Node.JS async.paralle'不要等到所有任务都完成
- Understanding Node.JS async.parallel
- node.js async.maplimit() 将额外的参数传递给处理函数
- loading youtube iframe api with require.js !async plugin
- async.js:async.eachSeries结果总是抛出未定义的
- Node.js - Async.js:并行执行是如何工作的
- Node js async.映射尝试失败,结果为空
- 使用node.js async和require获取多个url
- 带有require.js async和io的Socket.io未定义
- Node.js async.each()回调在所有迭代完成之前被调用
- LoopwithTimeout.js Async JavaScript book中的示例
- 使用谷歌地图与require js async插件不工作