将Promise.map与Promise.join结合使用

时间:2018-05-23 22:18:10

标签: javascript concurrency promise bluebird

我有两个变量:

const primaryPromise = doPrimaryPromise(primaryId);
const secondaryPromise = Promise.map(
    secondaryIds,
    secondaryId => doSecondaryPromise(secondaryId),
    { concurrency: 1 }
);
return Promise.join(
    primaryPromise,
    secondaryPromise
);

我必须对每个标识符执行异步操作,但我需要确保我一次只执行最多2个并发请求。这些是数据库操作,我希望在一次REST调用期间避免过多的扇出。

我目前的结构方式如下:

Promise.join

然而,Bluebird documentation告诉我Promise.map将同时执行承诺。此方法是否仍会强制执行Promise.join的最大并发,还是被顶级Promise覆盖?

我正在意识到,当我输入时,Promise.map返回的async/await可能是强制执行并发限制的原因,所以我应该是安全的。但我绝对会欣赏这种方法的一些反馈。

注意:遗憾的是,ng new不适合我。

0 个答案:

没有答案