forkJoin与combineLatest

前言

之前在项目中用到了forkJoin,用来处理多个异步http请求完成后执行回调函数,今天在处理将路由参数快照更改为参数订阅问题时,看到使用combineLatest,就学习整理一下


1.forkJoin

  1. 在进行http请求时,forkJoin与combineLatest并没有什么区别,因为http请求只会执行一次就结束。
  2. 用forkJoin合并的请求,只会触发一次subscribe里的回调函数。
  3. 会在所有异步请求执行完之后,触发一次subscribe里的回调函数。

2. combineLatest

  1. 用combineLatest合并的请求,可以触发多次subscribe里的回调函数
  2. 代码(示例)如下:
 combineLatest(
      this.activatedRoute.params,
      this.activatedRoute.queryParams
    ).subscribe(results => {
      const params = results[0];
      const queryParams = results[1];
      this.activatedId = queryParams.activatedId;
      this.getProject(params.code, this.activatedId);
    });
  1. 上述代码中,
    this.activatedRoute.params看做请求1,
    this.activatedRoute.queryParams看做请求2,
    combineLatest合并请求, 一开始会等请求1请求2都执行成功调用subscribe里的回调函数,但是在合并时,如果请求1在等待请求2时又执行了一次,那么就使用请求1的最新数据来进行合并,之后每当有请求执行获取新数据,都会以最新数据来合并,进而调用subscribe里的回调函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值