需求
今天接了一个gpt的项目。需要对接接口。后端返回的数据是ReadableStream类型的。记录下如何处理ReadableStream类型的数据
代码
const response = ... // response 是服务端返回的数据
// 创建了一个数据读取器
const reader = response.getReader();
// 创建了一个文本解码器
const decoder = new TextDecoder();
reader.read().then(function processText({ done, value }) {
// Result 对象包含了两个属性:
// done - 当 stream 传完所有数据时则变成 true
// value - 数据片段。当 done 为 true 时始终为 undefined
if (done) {
return;
}
// 将字节流转换为字符
const text = decoder.decode(value)
// 内容
console.log(text);
// 再次调用这个函数以读取更多数据
return reader.read().then(processText);
});
参考
https://developer.mozilla.org/zh-CN/docs/Web/API/ReadableStream