当前位置: 首页 > web >正文

ReadableStream响应主体数据处理(截图自用)

Fetch 接口返回的是一个 Promise,解析后得到 Response 对象,包含如下重要信息:

基本信息

  • type:响应类型,如 'basic'(同源请求响应) 、'cors'(跨域资源共享请求响应)等,用于标识请求来源及处理方式。
  • url:本次响应对应的请求 URL,方便确认数据来源。
  • redirected:布尔值,指示请求过程中是否发生过重定向。
  • status:HTTP 状态码,像 200 表示成功,404 表示资源未找到等,反映请求处理结果。
  • statusText:状态码对应的文本描述,如 200 对应 “OK” 。
  • ok:布尔值,一般状态码在 200 - 299 范围时为 true,表示请求成功。

数据内容相关

  • headers:包含响应头信息,以键值对形式存在,可获取服务器返回的元数据,如 Content-Type(标识响应体数据类型 )、Cache-Control(缓存策略 )等。
  • body:类型为 ReadableStream,是响应的主体内容,像请求的网页 HTML 代码、API 返回的 JSON 数据等都在其中。需通过特定方法(如 text() 转文本、json() 转 JSON 对象等 )来提取使用。
  • 流式数据响应值Response 如下

  • const reader = response.body!.getReader();

const { done, value } = await reader.read();

 console.log(done, value,'done, value');

 const decoder = new TextDecoder();

 buffer += decoder.decode(value, { stream: true });

console.log(buffer,'buffer');

 const jsonStr = line.replace(/^(?:data:\s*)+/, '').trim();

 const parsed = JSON.parse(jsonStr);

 

parsed.event === 'message'

     const startTagMatch = content.match(/<(\w+)>/);

 

watch(() => props.msg.result,(newResults: any) => {if (!newResults || !Array.isArray(newResults)) returnnewResults.forEach((result) => {content += result.answerconsole.log(content, 'content');processStreamingContent(result.answer)})debounce(() => {store.scroll2Bottom?.(true,'smooth')}, 100)()},{ immediate: true, deep: true }
)

 

  console.log(content, 'content');

 

http://www.xdnf.cn/news/58.html

相关文章:

  • 第七章:7.2求方程a*x*x+b*x+c=0的根,用3个函数,分别求当:b*b-4*a*c大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c的值
  • 聊一聊接口测试是如何进行的?
  • 16位海明码解码电路设计教程
  • 压缩包网页预览(zip-html-preview)
  • java IO/NIO/AIO
  • 【音视频】MP4解封装
  • 23种设计模式-创建型模式之单例模式(Java版本)
  • CS144 Lab1实战记录:实现TCP重组器
  • Vue中v-if和v-show区别
  • Redis之全局唯一ID
  • Python解决“小D的abc字符变换”问题
  • 进程(Process)和进程管理
  • 十三种物联网/通信模块综合对比——《数据手册--物联网/通信模块》
  • HarmonyOS
  • 安全可靠+操作简捷——安科瑞预付费电表的用户体验升级
  • 代码随想录算法训练营第三十七天| 52. 携带研究材料 518.零钱兑换II 377. 组合总和 Ⅳ 70. 爬楼梯(进阶版)
  • Dell戴尔服务器 PowerEdge R750xs + window server2012r2 || 2016
  • B端网站建设,怎样平衡功能与美观,满足企业多元需求?
  • 【Kubernetes基础--Service深入理解】--查阅笔记4
  • 通过gird布局实现div的响应式分布排列
  • 【Linux】第十章 配置和保护SSH
  • Android Mainline简介
  • Doris的向量化执行如何支撑分布式架构和复杂查询
  • ShenNiusModularity项目源码学习(18:ShenNius.Admin.Mvc项目分析-3)
  • AOSP的Doze模式-DeepIdle 初识
  • vue3 Ts axios 封装
  • 十二种存储器综合对比——《器件手册--存储器》
  • 23种设计模式-创建型模式之工厂方法模式(Java版本)
  • 科学护理进行性核上性麻痹,缓解病痛提升生活质量
  • 【Java学习笔记】键盘录入方法