我在 Node js 工作中经常遇到一个问题,我想知道处理它的最佳方法。
我对 API 进行了异步调用,该 API 会回调数据信息,例如交通时间。
我需要迭代需要获取交通时间的数据集合。我使用 async.each 来执行此操作。
请求全部完成后,如何收集所有流量时间?
目前,我正在使用的解决方案是将一个附加数组参数传递给异步调用,该调用是一个数组,我在其中推送数据结果,然后回调该数组。
一旦一切完成,我就可以在这个数组中获取我需要的所有信息,但是,由于这是我需要在很多不同的上下文中执行的操作,我想知道是否有一种最简单的方法来处理这个问题。
非常感谢:)
最佳答案
async.map()
的工作方式与 async.each()
类似,并允许您将结果传递给回调。然后使用包含结果的数组调用最终回调。
参见https://github.com/caolan/async#map
例如(未经测试,可能会更短,但我为示例明确写了一些内容)
async.map(dataCollection, function(data, done) {
trafficTime.get(data, function(err, time) {
if (err) return done(err);
done(null, time);
});
}, function(err, times) {
# times is the results array
});
关于node.js - 在 async.each 中检索异步回调信息的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34067951/