rxjs switchMap onerror 行为

rxjs switchMap onerror behavior

我对 rxjs Observable 中的 switchMap 感到困惑:

例如我有下一个代码:

Observable.fromEvent(button, 'click') .switchMap(() => Observable.fromPromise(fetch('http://return-error.com'))) .subscribe( (response) => { console.log(response); }, (error) => { console.log(error); } ); 如果我从 fetch 中得到错误,订阅就会中断。那么有没有办法处理它而不为任何错误创建新订阅?

我什至尝试捕获错误和 return Observable,但无论如何订阅都会中断。

更新:如何处理 angular 2 http.get 而不是获取?

问这些问题的时候做个Bin总是更有帮助。这是我为你做的。

您只需吞下提取调用中的错误。例如

fetch('bad-url').catch(err => 'Error but keep going')

这是演示。单击文档(输出)以触发事件。

http://jsbin.com/vavugakere/edit?js,console,output

(您需要具有本机 Fetch 实现的浏览器,否则会抛出错误)