【问题标题】:Easy way to retrieve async callback info in a async.each在 async.each 中检索异步回调信息的简单方法
【发布时间】:2016-03-08 04:22:38
【问题描述】:

在我的node js工作中经常遇到一个问题,我想知道处理它的最佳方法。

我有一个对 API 的异步调用,该 API 使用数据信息(例如交通时间)进行回调。

我需要遍历一组我需要获取交通时间的数据。我使用 async.each 来执行此操作。

请求全部完成后如何收集所有流量时间?

目前,我正在使用的解决方案是将一个额外的数组参数传递给异步调用,这是一个数组,我在其中推送数据结果,然后回调该数组。

一切都完成后,我可以在这个数组中获取我需要的所有信息,但是,由于这是我需要在很多不同的情况下执行的操作,我想知道是否有最简单的方法来处理这个问题.

非常感谢:)

【问题讨论】:

  • 你指的是来自async库的each()吗?你试过parallel() 吗?
  • 是的,我指的是异步库。什么可以帮助我使用并行而不是每个,因为我需要做的所有异步调用都是相同的?
  • 到目前为止你有什么?你能给我们看一些代码吗?

标签: node.js asynchronous callback


【解决方案1】:

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
});

【讨论】:

  • 谢谢@ploutch 我想这就是我需要的:)
猜你喜欢
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 2012-04-18
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多