html获取多个文件

Nic*_*las 6 standards html5 fetch-api

我想使用新的fetch api(https://fetch.spec.whatwg.org/)一次获取多个文件.可以原生吗?如果是这样,我应该如何利用这些承诺呢?

Bol*_*wyn 5

var list = [];
var urls = ['1.html', '2.html', '3.html'];
var results = [];

urls.forEach(function(url, i) { // (1)
  list.push( // (2)
    fetch(url).then(function(res){
      results[i] = res.blob(); // (3)
    })
  );
});

Promise
  .all(list) // (4)
  .then(function() {
    alert('all requests finished!'); // (5)
  });
Run Code Online (Sandbox Code Playgroud)

这是未经测试的代码!此外,它还依赖ES6 Array.prototype.forEach的新Promise对象。这个想法是这样的:

  1. 循环浏览所有URL。
  2. 对于每个网址,请使用fetchAPI 提取网址,并将返回的诺言存储在中list
  3. 另外,请求完成后,将结果存储在中results
  4. 创建一个新的诺言,当所有诺言list得到解决(即,所有请求完成)时,该诺言就会解决。
  5. 尽情享受人口稠密results