小编n00*_*099的帖子

用户事件上的流保护程序取消/中止下载

我正在使用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)

javascript download fetch large-files

6
推荐指数
1
解决办法
746
查看次数

标签 统计

download ×1

fetch ×1

javascript ×1

large-files ×1