前端流式(stream)请求,获取持续响应的方式

在网络请求中,流(stream)表示持续接收数据的过程。使用流,可以逐步获取服务器响应,而不是等待整个响应完成后一次性获取。

Axios 通过监听响应对象的 data 事件,可以实现流式请求,主要的写法有直接 pipe 流和手动监听事件两种。使用流可以实现大文件或数据的流传输,有效管理内存,提高传输效率。但需要注意正确处理流事件。

一、服务端

axios 从 0.12 版本开始支持流式请求。在 axios 中,可以通过响应对象的 data 事件监听流式响应。

1、Axios 流式请求写法

1)创建流并 Pipe 到 Writable Stream

通过调用 axios() 方法发起请求,获取到响应对象后,监听 data 事件,然后 pipe 数据到一个 Writable Stream 中,如 fs.createWriteStream。

const axios = require('axios');
const fs = require('fs');const writer = fs.createWriteStream('example.pdf'); axios({method: 'get',url: '/example.pdf',responseType: 'stream'
})
.then(response => {response.data.pipe(writer);});

2)手动监听 data 事件

通过调用 axios() 方法发起请求,获取到响应对象后,监听 data 事件,在事件回调中手动处理流数据:

const axios = require('axios');axios({method: 'get',url: '/example.pdf',responseTy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解读:如何解决Image-to-Video模型视频生成模糊的问题?

Diffusion Models视频生成-博客汇总 前言:目前Image-to-Video的视频生成模型,图片一般会经过VAE Encoder和Image precessor,导致图片中的信息会受到较大损失,生成的视频在细节信息上与输入的图片有较大的出入。这篇博客结合最新的…

怎么在电脑上记录每日事项,并在桌面上显示便签记事本?

作为一名教师兼班主任,我每天的工作繁忙且多样。从早晨的课程准备,到课间的学生辅导,再到课后的作业批改和家长沟通,每一项工作都需要我细心且有条理地完成。在这样的工作节奏下,如何高效管理每日事项,确保…

python for循环打印字符串、指定区间范围数字以及打印区间数字内的奇数和偶数

1.一串字符,循环打印: 源码: strings"Python" n0 print("字符长度为:"str(len(strings))) for a in strings: nn1 print ("第"str(n)"位是:"a)打印结果&#xff1a…

C# delegate的使用

C# 中的delegate(委托)是一种类型安全的函数指针,它安全地封装了方法的签名和引用。 可以将delegate视为一种可引用的方法类型,类似于C或C中的函数指针,但比函数指针更安全、更类型安全。 delegate主要用于事件处理、…

幸福感掉线了?那就去借点“光”吧

做什么事都提不起兴趣,总觉得自己不是很开心但是又难以描述哪里不对劲,遇到想不通的事情总会控制不住地持续内耗自己?当生活不断给你下达负能量挑战时,你是否准备好反击了呢? 这里有一个“借光”故事或许可能帮得上你…

【PyTorch】成功解决TypeError: iteration over a 0-d tensor

【PyTorch】成功解决TypeError: iteration over a 0-d tensor 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您…

【Java IO流】缓冲流和对象流的解析和应用实例

目录 前言 一、缓冲流 四种方式拷贝文件的用时对比 二、对象流 1. 使用对象流写入对象到本地文件 2. 使用对象流读取对象数据 总结 前言 【File文件管理及IO流(基本流)】http://t.csdnimg.cn/uG5Ff 该篇博客中,介绍了学习高级流需要的…

C++ 函数的默认形参和函数重载

C 函数的默认形参和函数重载 函数的默认形参 在C中,函数的默认形参(Default Arguments)允许在函数声明或定义时为一个或多个参数指定默认值。这意味着在调用函数时,如果某个参数没有提供值,则自动使用其默认值。这个…

字节跳动后端工程师实习生笔试题-c++

字节跳动后端工程师实习生笔试题链接 笔试题 1. 最大映射2. 木棒拼图3. 魔法权值4. 或与加 1. 最大映射 有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看…

金航标和萨科微总经理宋仕强说,中国还有一个优势就是有全世界最大的半导体消费市场

金航标和萨科微总经理宋仕强说,中国还有一个优势就是有全世界最大的半导体消费市场,有超过1万亿人民币的规模,全球占比34%,领先美国(27%),更大幅领先欧洲和日韩,金航标电子是在的中国…

Vue3 watch侦听器

一 侦听响应式ref 侦听响应式ref常量&#xff0c;当常量的ref的value值发生改变时会触发watch 一个小栗子&#xff1a;当输入框的输入内容变化时下方的文本也会跟着改变 <template><div class"box content"><div class"intro"><el…

【C语言】字符分类函数与字符转换函数

1. 字符分类函数 C语言中有⼀系列的函数是专门做字符分类的&#xff0c;也就是⼀个字符是属于什么类型的字符的。 这些函数的使用都需要包含⼀个头文件是 ctype.h 这些函数的使用方法非常类似&#xff0c;我们就讲解⼀个函数的事情&#xff1a; int islower ( int c ); islow…

Linux 15个常用脚本练习(初级)

&#xff08;1&#xff09;用户猜数字 #!/bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的…

js中函数参数的归一化处理

在 JavaScript 中&#xff0c;函数参数的归一化处理是一种将不同类型或格式的参数转换为统一的标准或格式的过程。这样做的目的是为了提高代码的灵活性、可维护性和可重用性。 以下是一些常见的函数参数归一化处理的方式&#xff1a; 数据类型转换&#xff1a;将不同类型的参数…

软考高级,高项和架构哪个更容易?

软考高级共有5个科目&#xff0c;考试难度都是偏大的。相对而言&#xff0c;信息系统项目管理师的考试难度小于系统架构设计师&#xff0c;不过目前高项是1年1考&#xff0c;架构是1年2考&#xff0c;从这个层面来说&#xff0c;通过架构考试的机会要多一些。 架构&高项考…

RabbitMq——direct交换器和fanout交换器 扇形交换器

direct交换器&#xff1a; Configuration 发送 Bean protected Queue queue&#xff08;&#xff09;{ Queue queue new Queue&#xff08;“myQueue”&#xff09; return queue&#xff1b; } amqpTemplate.convertAndSend("myQueue","这是发送的内…

pytorch_fid计算fid

pip install pytorch-fid from pytorch_fid import fid_score# 准备真实数据分布和生成模型的图像数据 real_images_folder xxx generated_images_folder xxx# 计算FID距离值 fid_value fid_score.calculate_fid_given_paths([real_images_folder, generated_images_folder]…

【测试开发】自动化测试 selenium 篇

目录 一. 什么是自动化测试 二. selenium 1. selenium的工作原理 2. seleniumJava的环境搭建(Chrome浏览器) 三. selenium中常用的API 1. 定位元素 findElement 1.1 css选择语法 1.2 xpath 2. 操作测试对象 2.1 sendKeys-在对象上模拟按键输入 2.2 click-点击对象…

mmap访问内存方式

mmap访问内存方式 请看下面的Java代码&#xff0c;这段程序是取自1brc竞赛的第一名的代码。 public static void main(String[] args) throws IOException, InterruptedException {... ...try (var fileChannel FileChannel.open(java.nio.file.Path.of(FILE), java.nio.fil…

elasticsearch8.12 分词器安装

分词器的主要作用将用户输入的一段文本&#xff0c;按照一定逻辑&#xff0c;分析成多个词语的一种工具 分词器下载地址 analysis-ik Releases infinilabs/analysis-ik GitHub 一个简便 安装方式 安装完成之后 会提示重启&#xff0c;重启es即可 ./bin/elasticsearch-pl…