Javascript 读取流/块 - 强制每次读取单个块()

问题描述 投票:0回答:1

tldr;无论如何,有没有办法让流响应的规范 javascript read() 一次只返回一个块?

读取分块流的常见实现(例如在 MDN https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/getReader)似乎都具有多个(尽管不能从一次 read() 返回部分块。我猜测这里的解释是什么,但似乎读取之间的时间越长,每次 read() 发送的块就越多,所以我们可以猜测发生了什么。

当每个块都是有效的 JSON 但多个块不是时,这很烦人。

例如,我可以看到如下所示的网络流量(即我的 api 正在生成定义良好的块)

0b <- hex value of chunk length
{"value":1}
0c
{"value":10}
0e
{"value":null}

但是 read() 可能会返回字符串

{"value":1}{"value":10}{"value":null}

谢谢, 大狗

javascript networking streaming
1个回答
0
投票

JS 没有内在的方法可以做到这一点。使用像

JSONStream
这样的库。更详细的方法可以在这里找到:在 NodeJS 中使用 JSONStream 时出现内存不足问题

© www.soinside.com 2019 - 2024. All rights reserved.