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 实现的浏览器,否则会抛出错误)
我对 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 实现的浏览器,否则会抛出错误)