将async.eachLimit转换为promise

时间:2016-03-18 09:51:44

标签: javascript node.js asynchronous coffeescript promise

我有这样的异步代码

async.eachLimit(teams, 1000, fetchTeamInfo, exit)

我需要将其转换为Promise(蓝鸟)

我认为做出类似的事情会很好:

Promise.method (teams, 1000, fetchTeamInfo) ->
  async.parallelLimit arr.map((a, i) ->
    ->
      iterator a, i, arr
  ), limit

但不确定是否正确

1 个答案:

答案 0 :(得分:1)

好吧,我发现你正在使用Promise.method,所以我假设蓝鸟 - 蓝鸟附带Promise.map已经支持你正在寻找的并发参数:

const fn = (teams, concurrency) => Promise.map(teams, fetchTeamInfo, {concurrency});

如你所见,我们在这里做的并不多 - 我们可以直接使用Promise.map :)

在CoffeeScript中,我认为它看起来像是:

fn = (teams, concurrency) -> Promise.map teams, fetchTeamInfo, concurrency: concurrency

但是近三年来我还没有写过CoffeeScript。