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()
})
}
回复
1个回答

test
2024-07-18
自己找到了
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);
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容