forkJoin

RxJS 5 forkJoin

by Brian Troncone

HTML

<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script>

JavaScript

const myPromise = val =>
  new Promise(resolve =>
    setTimeout(() => resolve(`Promise Resolved: ${val}`), 5000)
  );

const source = Rx.Observable.of([1, 2, 3, 4, 5]);
//emit array of all 5 results
const example = source.mergeMap(q =>
  Rx.Observable.forkJoin(...q.map(myPromise))
);
/*
  output:
  [
   "Promise Resolved: 1", 
   "Promise Resolved: 2", 
   "Promise Resolved: 3", 
   "Promise Resolved: 4",    
   "Promise Resolved: 5"
  ]
*/
const subscribe = example.subscribe(val => console.log(val));