angular6中进行多个异步请求,多个请求结束之后再进行之后的代码

import { Observable, of ,forkJoin ,merge ,zip} from 'rxjs';

//获取入库时间分类
  this.createTimeList = dates 

  //同时进行四个请求,在四个请求全部结束之后再进行 折线图初始化
  let browseHttp = this.service.statisticsByBrowse({range:"",activeStatistics:""})
  let downloadHttp = this.service.resourecStatisticsByDownLoad({range:"",activeStatistics:""})
  let collectHttp = this.service.statisticsByCollect({range:"",activeStatistics:""})
  let shareHttp = this.service.statisticsByShare({range:"",activeStatistics:""})

  forkJoin(browseHttp, downloadHttp, collectHttp,shareHttp).subscribe((res) => {
    //执行一次,多个对象
    console.log('执行一次,多个对象',res)
  })

  zip(browseHttp, downloadHttp, collectHttp,shareHttp).subscribe(([res1, res2, res3, res4]) => {
    //执行一次,对象分开
    console.log('执行一次,对象分开',res1)
    console.log('执行一次,对象分开',res2)
    console.log('执行一次,对象分开',res3)
    console.log('执行一次,对象分开',res4)
  })

  zip(browseHttp, downloadHttp, collectHttp,shareHttp).subscribe((res) => {
    //执行一次,多个对象
    console.log('执行一次,多个对象',res)
  })

  merge(browseHttp, downloadHttp, collectHttp,shareHttp).subscribe((res) => {
    //执行多次,每次一个对象
    console.log('执行多次,每次一个对象',res)
  })

打印结果:
forkJoin的结果
zip 1
zip 2

merge

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐