如何解决RxJS 中是否有类似 flatTap 的东西
在 RxJS 中是否有类似 flatTap 的东西?如果没有,为什么?这会是“不好的做法”吗?
假设您想点击某些内容并自动订阅(一个)内部可观察对象 - 与 flatMap 类似 - 但您想保留相同的对象以供进一步管道使用。然后我看到自己有时会做这样的事情:
outerObservable.pipe(
flatMap(v => {
return createInnerObservables(v).pipe(
toArray(),map(() => v),);
}),map(v => do something with v),)...
使用 flatTap 运算符可以简化为:
outerObservable.pipe(
flatTap(v => createInnerObservables(v)),)...
解决方法
您或许可以使用 subject
来设置副作用
let doSideEffect=new Subject();
outerObservable.pipe(
tap(v => doSideEffect.next(v)),map(v => do something with v),)...
// you can handle when to unsubscribe/complete the stream
doSideEffect.asObservable().pipe(....)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。