在for循环中使用fetch并等待结果的方法有多种。以下是其中两种常见的方法:
方法一:使用async/await
async function fetchData() {
for (let i = 0; i < 10; i++) {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
}
fetchData();
在这个方法中,我们定义了一个名为fetchData的异步函数。在for循环中,我们使用await关键字来等待fetch请求的结果。通过response.json()方法将响应转换为JSON格式的数据,并将其存储在变量data中。然后我们可以对data进行处理,例如打印到控制台。
方法二:使用Promise.all()
function fetchData() {
const urls = ['https://api.example.com/data1', 'https://api.example.com/data2', 'https://api.example.com/data3'];
const requests = urls.map(url => fetch(url));
Promise.all(requests)
.then(responses => Promise.all(responses.map(response => response.json())))
.then(data => {
data.forEach(item => console.log(item));
})
.catch(error => {
console.error(error);
});
}
fetchData();
在这个方法中,我们定义了一个名为fetchData的函数。我们创建了一个包含所有URL的数组,并使用map方法将每个URL转换为一个fetch请求。然后,我们使用Promise.all()方法等待所有请求完成,并将它们的响应存储在responses数组中。接下来,我们使用Promise.all()再次等待所有响应的JSON数据,并将它们存储在data数组中。最后,我们可以对data进行处理,例如使用forEach方法打印每个数据项。
这两种方法都可以在for循环中使用fetch并等待结果。具体选择哪种方法取决于具体的需求和代码结构。
领取专属 10元无门槛券
手把手带您无忧上云