- 此问题在此处已有答案**:
(33个答案)
How do I add a delay in a JavaScript loop?(32个答案)
昨天关门了。
我想知道在数组上循环并在元素上使用async/await来执行任务的最佳方法是什么。作为语言的新手,我还没有找到一个明确的答案,或者我不理解解决方案(使用Promise. all with和map方法?)
这是代码。renderCountry不是一个异步函数,但是发生这种情况的函数是一个异步函数。我做的方法正确吗?如果不正确,我应该如何实现它?我只是想确保代码在数组元素上循环时是非阻塞的。
Code
if (neighboursArr) {
neighboursArr.forEach(async (el, i) => {
await wait(i * 300);
const neighbourRes = await fetch(
`https://restcountries.com/v3.1/alpha/${el}`
);
const neighbourData = await neighbourRes.json();
renderCountry(neighbourData[0], "neighbour");
});
} else {
renderMessage("It is lonely island :)");
}
1条答案
按热度按时间j91ykkif1#
好吧,不管你的具体代码如何,在关注你在第一段中提出的主要问题的同时,我设计了一种异步迭代的方法:
以上代码来自我的Github gist