Missing close call on blob-get-stream causes the stream to never finish reading
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 38/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript
- 领域
- api
调研方向
从 File API blob-get-stream algorithm 和 Streams specification 的 ReadableStream close algorithm 开始。复现提供的 Blob.stream() BYOB-reader 示例,并验证在所有字节都已排入队列后,读取最终会返回 done=true。
由索引模型根据 Issue 内容生成。
描述
I believe blog get stream algorithm is missing a call to close that stream, which results in consumers of that readable stream never 'finishing' reading that stream.
For example, without a call to "close", from my reading 'done' will never get set to true for the following test:
let buffer = new ArrayBuffer(200);
let bytesReceived = 0;
let offset = 0;
let blob = new Blob(['Data to be read! 🦬']);
const stream = blob.stream();
const reader = stream.getReader({ mode: "byob" });
while (true) {
let result = await reader.read(new type(buffer, offset, buffer.byteLength - offset));
if (result.done) {
return;
}
buffer = result.value.buffer;
offset += result.value.byteLength;
bytesReceived += result.value.byteLength;
}
I think the fix should be just adding a close into the blob-get-stream algorithm after all bytes have been queued into the stream.
- 主要语言
- HTML
- 星标
- 118
- 派生
- 52
- 平均合并
- 9 天 16 小时
- 30 天内合并 PR
- 1
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
w3c/FileAPI 的其他 Issue
-
TPAC2026
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 1/5 1 小时以内 新手友好度 62/100
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 5/5 一周以上 新手友好度 30/100
相似的 Issue
-
area/sessions comp/agent P2 tool/skills type/perf
难度 2/5 1-3 小时 新手友好度 82/100
NousResearch/hermes-agent#117788 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 76/100
-
code-quality refactoring
难度 2/5 1-3 小时 新手友好度 84/100
github/gh-aw-firewall#8816 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
getgrav/grav-plugin-api#45 ·