我正在使用Streamsaver.js下载更大的文件,它工作得很好。
与此同时,我想处理用户的取消事件以停止从服务器获取内容。
是否可以使用 AbortController 和 AbortSignal 来停止可读流获取数据?
下载部分的示例代码如下。
fetch(url, { signal: abortSignal })
.then(resp => {
for (var pair of resp.headers.entries()) {
console.log(pair[0] + ': ' + pair[1]);
}
total = Number(resp.headers.get('X-zowe-filesize'));
return resp.body;
})
.then(res => {
var progress = new TransformStream({
transform(chunk, controller) {
loaded += chunk.length;
controller.enqueue(chunk);
elem.style.width = (loaded / total) * 100 + '%';
elem.innerHTML = (loaded / total) * 100 + '%';
}
})
const readableStream = res
// more optimized
if …Run Code Online (Sandbox Code Playgroud)