typescript - ¿Cuál es la diferencia entre observer.throw y observer.error en Observable?
¿Cuál es la diferencia entre observer.throw(err) y observer.error(err) ?
Estoy usando la versión de RxJS "5.0.0-beta.12"
var innerObservable = new Observable(observer => {
console.log('Inner observable call failed');
observer.error(new Error('Call failed!'));
})
var outerObservable = new Observable(observer => {
innerObservable.subscribe(
data => {
observer.next(data);
observer.onCompleted();
},
err => {
//observer.throw(err); // `console.error` doesn't get called
observer.error(err); //// `console.error` it's called
}
)
});
outerObservable.subscribe(
next => {
console.log('ok!');
}
, err => {
console.error('error');
}
, () => {
console.log('done');
}
);
Respuesta #1
De hecho, tu observador es una instancia de la clase Subscriber. Tiene el método error() pero no hay un método throw().
Existe Observable.throw() pero eso es algo diferente.
observer.throw(err)no existe.Observable.throw(err)es un observable que emite solo una notificación deerror.observer.error()se utiliza normalmente dentro del callback deObservable.create()para enviar una notificación deerror(igual que.next()o.complete) al observador que se suscribió recientemente.