Missing close call on blob-get-stream causes the stream to never finish reading
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- HTML
- Estrellas
- 118
- Forks
- 52
- Merge medio
- 9 d 16 h
- PR fusionados (30 d)
- 1
Descripción
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.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el File API blob-get-stream algorithm y el ReadableStream close algorithm de la Streams specification. Reproduce el ejemplo proporcionado de Blob.stream() BYOB-reader y verifica que la lectura finalmente devuelva done=true después de que todos los bytes se hayan puesto en cola.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- api
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100