在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)),
map(v => do something with v),
)...发布于 2021-07-22 22:32:10
您也许可以使用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(....)https://stackoverflow.com/questions/68482552
复制相似问题