首页 > 解决方案 > rjxs 中 catchError 的反义词是什么?

问题描述

我的拦截器中有以下代码。

return next.handle(clonedReq).pipe(
            catchError( (error):any =>  {
                console.log(error);
                this.loaderService.storeLoaderOff();
            }), tap( (success)=>{
                console.log(success);
               this.loaderService.storeLoaderOff();
            })
        );

但我还需要 onSuccess 管道,以便如果它返回成功,我会做其他事情。

我找不到那样的东西。也许你们有过这方面的经验。

标签: angularionic-frameworkrxjsreactive-programming

解决方案


Tap 让您可以监听并获取一个成功处理程序,然后是一个可选的错误处理程序

const { throwError, of } = rxjs;
const { tap } = rxjs.operators;

throwError('This is the error').pipe(
  tap(
    res => { console.log(res); },
    err => { console.log(err); }
  )
).subscribe(_ => {}, _ => {});

of('This is the response').pipe(
  tap(
    res => { console.log(res); },
    err => { console.log(err); }
  )
).subscribe(_ => {}, _ => {});
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.4.0/rxjs.umd.min.js"></script>


推荐阅读