如何处理错误但跳过流中的进一步处理?

时间:2018-06-14 15:36:22

标签: angular typescript rxjs

在这种情况下

this.http.call().pipe(
    catchError((error) => {
        doSomething();
    }),
    switchMap((data) => {
        doMoreThings();
    }),
);

执行catchError块时,是否可以不执行switchMap?

1 个答案:

答案 0 :(得分:1)

这取决于您从catchError的回调中返回的观察结果。

如果您返回empty()。然后它不会触发switchMap,因为empty()刚刚完成并且没有发出任何next通知。

您还可以返回throwError(...)只发出error次通知而不会发出next的内容。