angular - 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 管道,以便如果它返回成功,我会做其他事情。
我找不到那样的东西。也许你们有过这方面的经验。
解决方案
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>
推荐阅读
- c# - 设置 ZipArchiveEntry.LastWriteTime 会以秒为单位丢失精度
- react-native - 找不到事件的处理函数:“changeText”
- html - 我的 styles.scss 根本无法在 html 中工作
- html - CSS 列响应式设计
- flutter - 如何修复类'AsyncSnapshot
' 没有实例 getter 'length'? - file - 使用 WSL 将文件从 Windows 复制到 Windows
- ios - 同一文件上的 PDF 超链接不适用于 iPhone 或 iPad
- sql - LAG/LEAD 功能
- python - setup.py 构建后无法导入模块
- php - 如何使用折叠/展开选项制作 jQuery 数据表 mysql php