w3c / w3c/FileAPI

Missing close call on blob-get-stream causes the stream to never finish reading

Abierto
#206 1 comentario 2 reacciones 0 asignados Ver en GitHub

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.