我正在使用Node.js,并且在异步/等待时遇到了一些麻烦。我的项目每天一次从多个端点重新获取数据,并通过调用一个广泛的refetch函数来做到这一点:
async function refetch() {
await refetchOne();
await refetchTwo();
await refetchThree();
await refetchFour();
await refetchFive();
}
现在,我希望它以某种顺序重新获取(如上所述,1-> 2-> 3-> 4-> 5)。但是,有时无法保持顺序(即refetchFive被调用并在四或三完成之前完成。如何确保下一个refetch函数仅在前一个完成后调用?
答案 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
}