【发布时间】:2016-05-29 01:38:53
【问题描述】:
forEach,我正在使用async 库。在 foreach 循环中,我将调用不同的服务并获取数据。在我看来,这些数据应该是为了处理它,因为这些是一些着装细节,需要整理。所以我尝试通过在外部服务回调中添加 done() 来使 foreach 循环同步。
var address_deails = [];
var x = 0;
async.forEach(lat_long, function (item, done) {
external_servie(item,config,function (err, data) {
if (err) {
callback(err, null);
} else {
//code here .......
address_deails[x] = //some_data;
}
x++;
done(); <------------- Here
});
}, function(err) {
if(err) {
callback(err,null)
} else {
callback(err,address_deails)
}
});
但我每次都以不同的顺序获取值。
我想像 0,1,2 这样按顺序获取数组键。
据我所知,如果您在回调中使用done(),直到回调返回,forEach 循环将等待。
async.forEach 的工作方式有什么不同吗?
你能给我任何建议,以便我可以解决我的问题,可以使用异步以外的其他库。
提前致谢。
【问题讨论】:
-
async有forEach吗? -
你使用的是什么版本的异步?我认为当前没有forEach? async.each 不保证系列会按顺序运行。
-
@Seonixx 我的版本是 1.4.2
-
@Jai 是的,我使用的是 1.4.2。我可以使用其他库来实现这一点吗?
-
@KanishkaPanamaldeniya github.com/caolan/async#collections 我对此表示怀疑。
标签: javascript node.js asynchronous foreach node-async