I\'m writing an app in Angular 2 and I want to execute several http requests and run a function on the responses.
In Angular 1, I would write something like $q
I'm learning RxJS and I was trying to do the same thing with RxJS v5
It seems like we don't have forkJoin on v5 anymore, so here's how I got it working (works with flatMap or mergeMap, which are aliases):
const callOne = value =>
new window.Promise(resolve =>
setTimeout(() => resolve(value + 10), 3000)
);
const callTwo = value =>
new window.Promise(resolve =>
setTimeout(() => resolve(value + 20), 1000)
);
Rx.Observable
.of(2)
.do(() => console.log('querying...'))
.mergeMap(number =>
Rx.Observable.zip(
Rx.Observable.fromPromise(callOne(number)),
Rx.Observable.fromPromise(callTwo(number))
)
).concatAll()
.subscribe(createSubscriber('promises in parallel'));