I want to merge the latest emitted values from multiple Observables, so right now I'm using .withLatestFrom
. Except, it nests the data together in nested arrays instead of pushing the data into a new array value. Example code below.
Any ideas on how I can retrieve multiple Observable emits using .withLatestFrom
?
source0
.withLatestFrom(source1)
.withLatestFrom(source2)
.withLatestFrom(source3)
.map((data) => { console.log(data) });
withLatestFrom
supports multiple observables:
.withLatestFrom(source1, source2, source3)
.map((data) => { console.log(data) });
-> [val, value1, value2, value3]
It also supports function as it's last parameter, so you can get values other than arrays:
observable$
.withLatestFrom(source1, source2, (val, one, two) => {
return {val: val, one: one, two: two};
});
withLatestFrom accepts multiple observables. so you can write it like:
let obs1$ = Rx.Observable.of('a');
let obs2$ = Rx.Observable.of('b');
Rx.Observable.interval(1000)
.withLatestFrom(obs1$, obs2$)
.subscribe(x=>console.log(x))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With