我在我的React应用程序中使用fetch API从URL下载文件。每个URL提供一个响应块。当文件只有一个块时,我可以使用response.blob()下载文件。但是,如果对于单个文件有多个块,则必须从n个不同的URL(例如url1、url2等)获取块。如何组合它们的响应以生成单个blob并下载文件。
以下是仅使用一个块(从url-1获取)下载文件的代码。
我可以在Fetch API中进行多个请求,并使用
以下是仅使用一个块(从url-1获取)下载文件的代码。
let downloadUrl = `https://url-1`;
fetch(downloadUrl, {
method: 'GET'
})
.then(
(res: any) => {
if (res.ok && res.status === 200) {
//File response loaded
} else {
return null;
}
return res.blob();
},
error => {
// error in downloading
}
)
.then(fileData => {
if (fileData) {
let url = window.URL.createObjectURL(fileData);
let a = document.createElement('a');
a.href = url;
a.download = file.fileName;
a.click();
}
});
我可以在Fetch API中进行多个请求,并使用
Promise.all(responseArr)
。但是如何将它们的响应合并成单个 blob 响应呢?