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 형태로 제공해 주는건 동일하지만 스트림 마다 발생여부의 차이가 있었다.