javascript - understanding - w3school promise
¿Debe un mensaje de Promise.reject estar envuelto en un error? (2)
Recomiendo usar solo el objeto Error
(no una cadena) para enviar los motivos.
Justificación
Otras partes del código están generando los Errors
dentro del motivo de rechazo de Promesa ...
Si algún código falla, la excepción devuelve el objeto Error
. Además, si llama a cualquier biblioteca externa que no sea compatible con la Promesa, lanzará el objeto Error
cuando algo falla. Si uno de los errores mencionados anteriormente ocurre dentro de la Promesa, se transformará en catch
con el objeto Error
.
Por lo tanto, si va a utilizar la string
como motivo de rechazo de promesa, debe esperar que la captura pueda ocurrir con su string
(parte de su código) o Error
(cuando se produce algún error general). Por lo tanto, tendrá que usar el código feo (err.message || err)
todas partes, cuando tenga que manejar el error.
Sí, definitivamente debería. Una cadena no es un error , cuando tienes errores, por lo general, significa que algo salió mal, lo que significa que realmente disfrutarás de un buen seguimiento de la pila. Ningún error - no hay seguimiento de la pila.
Al igual que con try / catch, si agregas .catch
a un rechazo lanzado, quieres poder registrar el seguimiento de la pila, lo que hace que las cadenas se .catch
.
Estoy en el móvil, por lo que esta respuesta es bastante corta, pero realmente no puedo enfatizar lo suficiente lo importante que es esto. En aplicaciones grandes (10K + LoC), las acumulaciones de rechazos realmente hicieron la diferencia entre una búsqueda remota de errores fácil y una larga noche en la oficina.