async-await的循环请求数据
在JavaScript中使用async-await
进行循环请求数据时,确保你的循环是串行执行的,以避免产生竞争条件。以下是一个使用async-await
在循环中串行发送请求的例子:
const fetchData = async (urls) => {
const results = [];
for (const url of urls) {
const response = await fetch(url);
const data = await response.json();
results.push(data);
}
return results;
};
// 使用例子
const urls = ['https://api.example.com/data1', 'https://api.example.com/data2'];
fetchData(urls)
.then(data => console.log(data))
.catch(error => console.error(error));
在这个例子中,fetchData
函数接收一个URL数组,并且使用for...of
循环来逐个访问这些URL,在每次迭代中,都使用await
来等待当前请求完成并获取数据,这样就确保了请求是串行执行的。
评论已关闭