在 foreach 循环中获取多个链接 [英] Fetch multiple links inside foreach loop

查看:31
本文介绍了在 foreach 循环中获取多个链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have array of links like so:

let array = ['https://1','https://2','https://3']

Than i want to loop all elements and run fetch on them. Still fetch is async so i get request more times i deal this problem removing element from array like so:

array.forEach((link,index) => {
    fetch(link, {mode: 'no-cors'}).then(function () {
        //more stuff not inportant
    }).catch(e => {
        console.error('error', e);
    });
    array.splice(index,1)
})

I wonder is there better solution to solve this ?

解决方案

You want to use Promise.all for this, like so:

// store urls to fetch in an array
const urls = [
  'https://dog.ceo/api/breeds/list',
  'https://dog.ceo/api/breeds/image/random'
];

// use map() to perform a fetch and handle the response for each url
Promise.all(urls.map(url =>
  fetch(url)
    .then(checkStatus)                 
    .then(parseJSON)
    .catch(logError)
))
.then(data => {
  // do something with the data
})

这篇关于在 foreach 循环中获取多个链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆