【发布时间】:2017-01-05 18:37:06
【问题描述】:
我是 Rx 的新手,如果能在错误处理方面提供一些帮助,我将不胜感激。我有以下代码,基本上是预先输入的:
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");
});
在 onNext 函数发生异常后 Observable 终止。这对我来说似乎是一种不受欢迎的行为,因为我不想将所有 onNext 代码包装在 try-catch 中。有什么方法可以告诉可观察者无论发生什么异常都继续发出通知?
【问题讨论】:
-
我不知道你在 subscribe 方法中抛出错误的目的,但这是一种非常不符合 RxJS-y 的做事方式。我会重新考虑您的模式并将反应式错误处理合并到管道中。
标签: rxjs reactive-programming reactive-extensions-js