el objeto FileReader de Javascript admite un controlador de onerror que se llama cuando se produce un error, pero el evento que se transmite es un ProgressEvent y no contiene ningún detalle del error.
¿Cómo puedo averiguar qué error real ocurrió?
Después de hacer RTFM un poco más de cerca en respuesta al comentario de @Ariel ( https://developer.mozilla.org/en-US/docs/Web/API/FileReader/error ), veo que FileReader tiene una propiedad de error , así como una evento de error Cuando se llama al controlador de errores, el ProgressEvent que se le pasó es casi inútil y, en su lugar, debe mirar la propiedad del error .
Por lo tanto en lugar de:
reader.onerror = x => { throw x }una respuesta más apropiada es:
reader.onerror = () => { throw reader.error }`o si está envolviendo una promesa (según Javascript Promises con FileReader() ), en lugar de:
reader.onerror = reject:es mejor que uses
reader.onerror = () => reject(reader.error) Habiendo dicho eso, la propiedad de error es del tipo DOMException que no hereda de Error y, en mi caso, contenía muy poca información útil, pero parece ser la mejor que existe y, por lo que pude ver, lanzando una DOMException parece considerarse una práctica aceptable a pesar de que no es un Error