AI应用:消费流式输出

Fetch + ReadableStream
- 支持 POST 请求和自定义请求头
- 能处理任意格式的流式数据
复制代码/**
* 通用流式请求方法 —— 返回一个异步可迭代对象
* @param {string} url 请求地址
* @param {RequestInit} [options] fetch 的配置项(method、headers、body、signal 等)
* @returns {AsyncGenerator<string, void, unknown>} 异步生成器,每次 yield 一个解码后的文本块
*/
async function* createStreamIterator(url, options = {}) {
// 1. 发起 fetch 请求
const response = await fetch(url, options); // 2. 检查响应状态(可选但建议)
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
} // 3. 获取 reader 和 decoder
const reader = response.body.getReader();
const decoder = new TextDecoder('utf-8', { stream: true }); // 4. 逐块读取并 yield 解码后的文本
while (true) {
const { done, value } = await reader.read();
if (done) break;
yield decoder.decode(value, { stream: true });
}
}// 外部调用
// 结合取消(使用 AbortController)
const controller = new AbortController();
const iterator = createStreamIterator('/api/stream', { signal: controller.signal });// 在需要时取消请求
// controller.abort();for await (const chunk of iterator) {
// 处理 chunk
}
-
08.10
《龙岛异兽:起源》特暴龙说明
-
08.10
天涯明月刀:联动剧情开启第四回奖励;猪猪币兑换保底花费
-
08.10
蛋仔派对S30元气零食季玩法说明指南
-
08.10
好玩的逗猫小游戏有哪些 有趣的猫咪游戏盘点2026
-
08.10
异环1.0版本抽卡资源数据统计一览
-
08.10
《航海王壮志雄心》顶上战争老沙角色说明
推荐专题
热门阅读
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏