node - return error javascript
Tipo de error de captura en Bluebird no funciona (1)
Tengo una clase de error personalizada:
class NetworkError extends Error {
constructor() {
super(''Network Error'');
this.name = ''NetworkError'';
}
}
Y quiero manejarlo específicamente:
import {NetworkError} from ''../../common/errors'';
someFunc().catch(NetworkError, err => {
// this is missed
}).catch(err => {
// this is hit
});
Pero se está saltando mi captura personalizada y golpeando la captura general. Si lo cambio así, funciona:
someFunc().catch({name: ''NetworkError''}, err => {
// this is hit
}).catch(err => {
// this is missed
});
Obviamente, se prefiere la primera forma. ¿Que me estoy perdiendo aqui?
Como @loganfsmyth sugirió en los comentarios de la pregunta, es una limitación de Babel. Esta respuesta hace el truco:
¿Por qué no funciona instanceof en instancias de subclases de error bajo babel-node?