Axios中的onDownloadProgress函数获取文件流

推荐:axios 请求中断和请求重试
关注博主微信公众号【前端成长营】以后也会持续同步…
在这里插入图片描述

微信扫码体验一下 (说不定哪天你就用得上)
在这里插入图片描述

假如
你有一个项目关于聊天的
后端接口是个流的的形式返回给前端
文字会不停的显示的对话框里直到完成。
在这里插入图片描述
那么在 请求接口中
我们要使用onDownloadProgress函数 (在接口返回子发生变化事都会被触发)

  var  controller = new AbortController() 
       let _res = await facth(
            {
              signal: controller.signal, 
              onDownloadProgress: (data) => {
                const xhr = data.target
                const { responseText } = xhr
                let text = responseText.split('\n').filter(v => v)
              }
            }
          )

controller = new AbortController()

如果接口中涉及到 取消或者停止需求, 接口中需要传入 signal: controller.signal

案例2

以下是一个简单的onDownloadProgress函数示例,用于在Web开发中处理标签的download事件:

function onDownloadProgress(event) {
  if (event.lengthComputable) {
    // 如果可以计算总数据量
    var percentComplete = (event.loaded / event.total) * 100;
    console.log('下载进度: ' + percentComplete.toFixed(2) + '%');
  } else {
    // 如果无法计算总数据量,通常是因为数据是流式的
    console.log('下载中...');
  }
}

// 使用示例
var downloadLink = document.querySelector('#downloadLink');
downloadLink.addEventListener('download', onDownloadProgress);

在上面的示例中,onDownloadProgress 函数会在每次下载进度发生变化时被调用。它检查event.lengthComputable属性来确定是否可以计算总数据量。如果可以,它就计算已下载数据的百分比并打印出来;如果不可以,它就简单地打印一个表示下载仍在进行的消息。

请注意,不是所有的下载操作都会触发download事件,这取决于浏览器和下载的具体实现。此外,onDownloadProgress函数的确切参数和行为也可能因环境和框架的不同而有所差异。因此,在编写onDownloadProgress函数时,您应该查阅相关文档以了解如何在您的特定环境中使用它。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端成长营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值