/ rxjs

forkJoin vs zip in RxJS

Promise.all() 과 비슷한 역할을 하는 RxJS Operator가 forkJoin과 zip 이 있다.

그런데 이 두가지의 차이가 있어서 공유한다.

const interval$ = Observable.interval(1000);
Observable.forkJoin(interval$.take(3))
  .subscribe(result => console.log('forkJoin', result));
Observable.zip(interval$.take(5))
  .subscribe(result => console.log('zip', result));
// Output
zip [0]
zip [1]
forkJoin [2]
zip [2]
zip [3]
zip [4]

여러 Observable을 인자로 받아서 결과를 array 형태로 제공해 주는건 동일하지만 스트림 마다 발생여부의 차이가 있었다.