养猫人

文章 评论 浏览 29

养猫人 2022-05-04 13:54:20
function multiRequest(urls, maxNum) {
  let i = 0
  let res = []
  return new Promise(r => {
    for(; i < maxNum; i++) {
      addTask()
    }
    function addTask() {
      res[i] = fetch(urls[i])
      res[i].then(res => { i >= urls.length && r();i < urls.length && addTask(); i++;  })
    }
  }).then((_) => {
    Promise.all(res).then(ans => {
      console.log(ans)
    })
  })
}
function fetch(url) {
  return new Promise((resolve) => {
    let start = new Date()
    setTimeout(() => {
      resolve(`start: ${start};end: ${new Date()}`)
    }, 10000 * Math.random());
  })
}
multiRequest([1,2,3,4,5,6,7,8,9], 3)

第 153 题:实现一个批量请求函数 multiRequest(urls, maxNum)

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文