w3c / w3c/FileAPI

Support using AbortController with FileAPI

Abierto
#159 7 comentarios 0 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

Hey,

It would be useful to use the web platform standard cancellation method to abort readers.
Other web platform code (like fetch) supports cancellation through signals.

Code before:

async function readFile(file, { signal }) {
  var reader = new FileReader();
  const handler = e => reader.abort();
  signal.addEventListener('abort', handler, { once: true });
  reader.addEventListener('load', () => signal.removeEventListener('abort', handler));
  reader.addEventListener('error', () => signal.removeEventListener('abort', handler));
  const p = new Promise((resolve, reject) => {
    reader.onload = (e) => resolve(e.target.result);
    reader.onerror = (e) => reject(reader.error);
  });
  reader.readAsText(file);
  return await p;
}

Possible suggested change, assuming signal support:

async function readFile(file, { signal }) {
  var reader = new FileReader({ signal });
  const p = new Promise((resolve, reject) => {
    reader.onload = (e) => resolve(e.target.result);
    reader.onerror = (e) => reject(reader.error);
  });
  reader.readAsText(file);
  return await p;
}

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 los ejemplos de FileReader y AbortController del issue y, después, lee los puntos de entrada de la especificación de FileAPI para la construcción de FileReader, la lectura, la cancelación y el manejo de errores. Define el comportamiento de compatibilidad con señales y su interacción con los eventos existentes del reader; el trabajo estará terminado cuando la especificación describa de forma coherente la cancelación y sus resultados observables.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
html, javascript
Área
api
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.