我不明白从the docs https://rxjs-dev.firebaseapp.com/api/operators/tap。有人能给我解释一下吗?
大多数操作符都按流顺序工作,例如:
source$.pipe(
map((a: string) => changeAndReturnArray(a)),
filter((b: string[]) => giveMeOnlySymbolsThatAreAfterNInAlphabet(b)),
switchMap((c: string[]) => putToSomeObservable(c))
....
);
在该示例中,您没有“破坏”流,也没有跳出流来执行某些外部操作。
使用“tap”运算符可以跳转到流之外,您可以:
- 调用函数会导致一些副作用,这些副作用可能对最终用户可见(例如 - 显示对话框、显示小吃栏、重定向到不同的路线(但在我看来,不建议以这种方式使用 tap))
- 商店的调度操作(如果您使用任何 - 例如 ngrx 商店)
- 调试你的代码 - > console.log()
- 任何可被视为流的“副作用”的内容。
我个人的意见 - 仅当您找不到更好的解决方案时才使用“tap”。跳到流之外并调用一些副作用可能是双刃剑,特别是当您处理一些更大的应用程序时。副作用总是更难维持,并且您可以毫无理由地使用正在做神奇事情的应用程序来完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)