Why is the map operator evaluated for each subscriber instead of once?
const obs1 = Rx.Observable.interval(1000).take(1).map((x, i) => {
console.log(i+1 + ':1 map')
return 'obs1';
})
const obs2 = Rx.Observable.interval(1300).take(1).map((x, i) => {
console.log(i+1 + ':2 map')
return 'obs2';
})
const obs3 = Rx.Observable.interval(1700).take(2).map((x, i) => {
console.log(i+1 + ':3 map')
return 'obs3';
})
const view = obs1.combineLatest(obs2, obs3, (obs1, obs2, obs3) => { return obs1 + ', ' + obs2 + ', ' + obs3; });
// Every subscriber adds more calls to map - why is it called multiple times at the same time ?
view.subscribe((value) => {
console.log('sub1: ' + value)
});
view.subscribe((value) => {
console.log('sub2: ' + value)
});
view.subscribe((value) => {
console.log('sub3: ' + value)
});
I created a testcase here: http://jsbin.com/jubinuf/3/edit?js,console
Can I write this testcase differently to avoid this behaviour?