js forEach批量下载文件只有第一个下载成功?

比如我有个文件url的列表urlFiles = ['a','b','c'],当我想下载这三个文件的时候,我使用了下面的代码,但是每次下载只有a下载成功

urlFiles.forEach(item => {
    fetch(item).then(res => res.blob()).then(blob => {
      const a = document.createElement('a')
      a.href = URL.createObjectURL(blob)
      //测试链接console.log(a.href)
      a.download = 'fileName'  // 下载文件的名字
      document.body.appendChild(a)
      a.click()
})
}
阅读 2.3k
1 个回答

自己找到了

const iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.style.height = 0;
iframe.src = url;
// 与前两种方式不同,iframe需要挂载到页面上才能触发请求
document.body.appendChild(iframe);
setTimeout(() => {
  iframe.remove();
}, 1000);

参考:https://juejin.cn/post/691936...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题