异步/等待NodeJS

时间:2020-09-05 21:33:33

标签: node.js asynchronous async-await

我正在使用Node.js,并且在异步/等待时遇到了一些麻烦。我的项目每天一次从多个端点重新获取数据,并通过调用一个广泛的refetch函数来做到这一点:

async function refetch() {
  await refetchOne();
  await refetchTwo();
  await refetchThree();
  await refetchFour();
  await refetchFive();
}

现在,我希望它以某种顺序重新获取(如上所述,1-> 2-> 3-> 4-> 5)。但是,有时无法保持顺序(即refetchFive被调用并在四或三完成之前完成。如何确保下一个refetch函数仅在前一个完成后调用?

1 个答案:

答案 0 :(得分:1)

运行一系列异步/等待功能的最简单方法是用于... of。这将按顺序执行它们,一次执行一个,并等待每个解决。

const asyncA = async () => {
  return 'a'
}

const asyncB = async () => {
  return 'b'
}

const asyncC = async () => {
  return 'C'
}

const list = [asyncA, asyncB, asyncC]

for (const fn of list) {
  await fn() // call function to get returned Promise
}