首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RxJS中有类似flatTap的东西吗?

在RxJS中有类似flatTap的东西吗?
EN

Stack Overflow用户
提问于 2021-07-22 17:37:07
回答 1查看 31关注 0票数 1

在RxJS中有像flatTap这样的东西吗?若否,原因何在?这会不会是“坏习惯”?

假设您想要点击某个对象并自动订阅内部可观察对象(类似于flatMap ),但您想保留相同的对象以供进一步的管道使用。然后,我看到自己有时会做这样的事情:

代码语言:javascript
复制
outerObservable.pipe(
  flatMap(v => {
    return createInnerObservables(v).pipe(
      toArray(),
      map(() => v),
    );
  }),
  map(v => do something with v),
)...

对于flatTap运算符,这可以简化为:

代码语言:javascript
复制
outerObservable.pipe(
  flatTap(v => createInnerObservables(v)),
  map(v => do something with v),
)...
EN

回答 1

Stack Overflow用户

发布于 2021-07-22 22:32:10

您也许可以使用subject来设置副作用

代码语言:javascript
复制
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(....)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68482552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档