jeter de l'erreur à l'intérieur rxjs Observables
Je suis en train de jeter une erreur à l'intérieur d'un rxjs Observables
new Observable(subscriber => {
Observable.throw("error1");
return Observable.throw("error2");
})
.subscribe(
() => {},
err => console.error(err)
);
erreur 1 n'est pas pris.
error2 donne une erreur de compilation:
Argument of type '(this: Observable<{}>, subscriber: Subscriber<{}>) => ErrorObservable<string>' is not assignable to parameter of type '(this: Observable<{}>, subscriber: Subscriber<{}>) => TeardownLogic'. Type 'ErrorObservable<string>' is not assignable to type 'TeardownLogic'
quelle est la bonne façon de jeter une erreur à l'intérieur d'une observable?
essayez de lancer une erreur comme
ne fonctionne pas. Il n'est pas pris par le subscribe()
Observable.throw(new Error("error1"))
.ne fonctionne pas. Il n'est pas pris par le subscribe()
OriginalL'auteur phzonta | 2017-02-15
Vous devez vous connecter pour publier un commentaire.
Lors de l'utilisation de
new Observable()
ouObservable.create()
vous pouvez le pousser à l'erreur directement à l'abonné (observateur):La fonction anonyme transmise à
new Observable()
peut éventuellement retourner un de désabonnement de rappel. C'est pourquoi il vous donne le message d'erreur parce que vous êtes de retour d'une Observable.À l'aide de
Observable.throw("error1")
n'est habituellement pas nécessaire. C'est juste une Observable qui émet seulement une erreur et rien de plus. Vous pouvez l'utiliser par exemple comme le suivant:Voir la démo en live: https://jsbin.com/fivudu/edit?js console
throw new Error()
sont pratiquement ignorées et non déclarés?OriginalL'auteur martin
Avec une observable que vous avez créé vous-même, vous avez accès à la
observer.error()
méthode.Remarque: si vous utilisez RxJS 4, vous devrez utiliser
onNext()
etonError()
à la place.OriginalL'auteur AngularChef