首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RxJS -将多个可观察到的数据链接起来,并在两者之间进行其他操作。

RxJS -将多个可观察到的数据链接起来,并在两者之间进行其他操作。
EN

Stack Overflow用户
提问于 2018-11-02 17:41:50
回答 2查看 1.8K关注 0票数 1

我在网上看了很多,没有找到任何能描述我的问题的东西。

我现在用的是角5。

基本上,我想要执行一个put http请求,然后一旦它完成了一些事情,然后执行另一个get http请求并做更多的事情。

下面是使用嵌套订阅的代码(我知道您不应该这样做):

代码语言:javascript
运行
复制
this.projectService.updateProject(this.project).subscribe(
  subscribe => {
    doSomethingAfterTheUpdate();
    this.projectService.get(this.id).subscribe(
      subscribe => {
        doSomethingAfterTheGet();
        });
    });

如您所见,我正在更新项目,然后获取项目。如何使用RxJS正确地做到这一点。我已经研究了Concat和MergeMap方法,但是我想在更新和get之后执行一些操作。

EN

Stack Overflow用户

回答已采纳

发布于 2018-11-02 18:04:43

您可以将doSomethingAfterTheUpdate视为一种副作用,因此您可以这样做:

代码语言:javascript
运行
复制
import { mergeMap, tap } from 'rxjs/operators';

this.projectService.updateProject(this.project).pipe(
   tap(_ => this.doSomethingAfterTheUpdate()),
   mergeMap(_ => this.projectService.get(this.id))
).subscribe(_ => this.doSomethingAfterTheGet());

请注意,我在某些管道操作中使用了_,因为您并不真正使用作用域值。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53123463

复制
相关文章

相似问题

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