Skip to content

useXStream 🌱

介绍

这个钩子函数,可以让用户更方便的控制 流式请求。提供 发起请求中断请求 ,返回 loading 请求状态,返回 SSE 协议 实时的数据流,返回请求 error 信息。

💌 消息

目前只测试了 SSE 和 SIP 协议请求,其他协议的请求还有待测试,如果您好的想法和发现,欢迎进交流群 👨‍👩‍👧‍👧 交流群,与我们取得联系,欢迎交流方案,提交 issue 和 pr。提交规范请阅读 👉 开发文档

代码演示

这个钩子函数,是对标 ant-design-xXStream 方法,我们 融合 Vue 的开发范式。

在此基础上,新增了对流式请求的 中断 处理,并将 原钩子函数的配置方法,放在了 startStream 入参中,让开发者更能理解 这个钩子的作用

这里展示对 SIP 协议的支持

📌 注意

这个 hooks 的解析规则,也和 ant-design-x 一致,都是在内部做了处理。请放心切换使用

sseEventPart 'event: message\ndata: {"id":"${i}","content":"${contentChunks[i]}"}\n\n'

ts
// 数据流默认分隔符(使用两个换行符,分割一条流数据)
const DEFAULT_STREAM_SEPARATOR = '\n\n'
// 分段默认分隔符(使用单个换行符,换行当前数据)
const DEFAULT_PART_SEPARATOR = '\n'
// 键值对默认分隔符(使用冒号)
const DEFAULT_KV_SEPARATOR = ':'

返回钩子

属性名说明类型
startStream开始请求流模式接口({readableStream, transformStream}) => void
cancel中断流式请求() => void
loading是否正在请求流式数据boolean
data实时返回的流式数据string
error流式请求报错信息string