Rxjs实践系列之forkJoin

1,458 阅读1分钟

概述

  • 这是一个非常常用的操作符,项目大概率会用到
  • 功能类似Promice.all
  • 只会返回一次数据,当每个流数据都拿到最后数据后才会返回数据

事例

import { of, forkJoin, interval } from 'rxjs'; 
import { delay, take } from 'rxjs/operators';


const source1 = interval(1000).pipe(
  take(10)
);
const source2 = of(2).pipe(
  delay(2000)
);
const source3 = of(3).pipe(
  delay(3000)
);
forkJoin([source1, source2, source3]).subscribe(res => console.log(res)) // 10秒后输出 [9, 2, 3]

source1会拿到10个数据,forkJion订阅后,会在最后都拿到数据才输入订阅数据

这里核心点记得不管参数流有多少次返回数据,forkJoin都会在其参数流都返回最后一次数据才会输出结果

代码在线验证地址

文中如有错误,欢迎在评论区指正,如果这篇文章帮助到了你,欢迎点赞和关注

本文使用 mdnice 排版