如何与延迟同步执行承诺数组

时间:2018-10-29 21:13:55

标签: asynchronous promise delay

我有一个JSON对象数组。我想遍历数组,并为每个对象检查一些参数,如果某些条件为真,请使用Air-table模块请求创建记录。

由于速率限制,我想限制我发出这些请求的速度,本质上是依次调用这些函数,并在它们之间实现延迟。

许诺总是让我感到困惑。如何对数组进行迭代以实现承诺。我可以使用Async Await做到这一点吗?我知道有些承诺库(例如Bluebird)既有延迟功能又有并发功能,但是我对如何正确使用它们感到困惑。

1 个答案:

答案 0 :(得分:0)

如果要同步遍历数组,可以使用for ... of构造:

async function doSomethingWithArray(array, delayTime) {
  for (const item of array) {
    await someMethod(item);
    await delay(delayTime);
  }
}

最简单的延迟功能是:

function delay(delayTime) {
  return new Promise(resolve => setTimeout(resolve, delayTime));
}
相关问题