Ich bin neu in Rx, und ich würde wirklich ein wenig Hilfe bei der Fehlerbehandlung zu schätzen wissen. Ich habe den folgenden Code, der im Grunde ein typeahead ist:RxJS - Senden Sie weiterhin Benachrichtigungen, nachdem ein Fehler in onNext
var observable = Rx.Observable.fromEvent(searchField, 'keyup')
.map(ev => ev.target.value)
.filter(text => text.length > 2)
.debounce(500 /* ms */)
.distinctUntilChanged()
.flatMapLatest(getAsyncSearchResults);
observable.subscribe(function(value) {
console.log("onNext");
throw "error"; // THIS TERMINATES THE OBSERVABLE
},
function(error) {
console.log("Error");
},
function() {
console.log("Completed");
});
beobachtbaren endet nachdem eine Ausnahme in OnNext Funktion auftritt. Dies scheint mir ein unerwünschtes Verhalten zu sein, da ich nicht meinen ganzen onNext-Code in einen try-catch einpacken möchte. Gibt es irgendeine Möglichkeit, dass ich dem Observablen mitteilen könnte, die Benachrichtigung immer weiter zu machen, egal welche Ausnahme auftritt?
Ich weiß nicht, Ihren Zweck einen Fehler zu werfen in der Subscribe-Methode, aber das ist eine sehr un-RxJS-y-Art, Dinge zu tun. Ich würde Ihr Muster überdenken und reaktive Fehlerbehandlung in die Pipeline integrieren. –