我正在尝试使用window.location.href下载多个文件。我从s3获取文件url,并将其推送到具有链接的数组中。它只在第一次迭代中工作。在第二次迭代中,文件未下载但发生了迭代。预先感谢。
var urls = [
"https://www.s3.com/files1",
"https://www.s3.com/files2",
"https://www.s3.com/files3"
];
urls.forEach(url => {
window.location.href = url;
})
答案 0 :(得分:0)
考虑获取或发出XHR请求的其他API。然后,为每个呼叫指定要返回的内容(我将Blob类型)。
所有动作完成(获取承诺)后,您应该得到结果(res)。如果发生任何错误,请在您的catch块中进行处理。
let arr = [];
const urls = [
"https://www.s3.com/files1",
"https://www.s3.com/files2",
"https://www.s3.com/files3"
];
Promise
.all(urls.map(url => fetch(url).then(res => res.blob())))
.then(res => {
console.log('files here', res);
}).catch(err => console.log('error occured while fetching', err))
答案 1 :(得分:0)
在第一次迭代中,URL会更改,然后浏览器将不再运行您编写的脚本。
它运行与当前活动的新URL相关联的脚本。 即您的情况为“ https://www.s3.com/files1”。
正确的方法是使用fetch或axios来访问这些网址。