慕容3067478
2022-01-07 21:40:00
我正在嘗試使用 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;})
2 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
考慮 fetch 或其他一些 API 來發出 XHR 請求。之后,為每個調用指定要返回的內容(我輸入了 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))

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
在第一次迭代中,url 發生了變化,然后瀏覽器不再運行您編寫的腳本。
它運行與當前活動的新 url 相關聯的腳本。即“ https://www.s3.com/files1 ”在您的情況下。
正確的方法是使用 fetch 或 axios 來訪問這些 url。
添加回答
舉報
0/150
提交
取消