rxjs switchMap onerror行为

时间:2017-04-14 21:46:01

标签: rxjs reactive-programming observable angular2-http onerror

我对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中收到错误,则订阅会中断。那么有没有办法处理它不为任何错误创建新的订阅?

我甚至试图捕获错误并返回Observable,但无论如何订阅都会中断。

upd:如何处理angular 2 http.get而不是fetch?

1 个答案:

答案 0 :(得分:1)

如果你在问这些问题时做一个Bin,它总会更有帮助。我在这个上为你做了。

您只需要在提取调用中吞下错误。 E.g。

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

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

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

(您需要一个具有原生Fetch实现的浏览器,否则它会抛出错误)