如何实现类似ChatGPT的打字机效果
HTTP 响应体流
HTTP 响应体流是什么
单次 HTTP 请求对应一条响应;响应体暴露为 ReadableStream,浏览器用 fetch 拿到 res.body 后,通过 getReader() 循环 read() 按块消费,像边下载边读一样
HTTP 数据格式
正文多为连续 UTF-8 字节流(例如 Content-Type: text/plain),没有统一的应用层分帧规范;是否在分块边界截断、如何拼接成字符串由业务约定(下文示例把整个回答收成一段纯文本)。
代码实现
服务端代码实现
原始 HTTP 分块:正文为连续 UTF-8 文本
1 | app.post("/api/chat", async (req, res) => { |




