this is the code
const timerOne = timer(1000, 4000).pipe(
map(x=>`1-${x}-${new Date().getSeconds()}`)
)
//timerTwo emits first value at 2s, then once every 4s
const timerTwo = timer(2000, 4000).pipe(
map(x=>`2-${x}-${new Date().getSeconds()}`)
);
//timerThree emits first value at 3s, then once every 4s
const timerThree = timer(3000, 4000).pipe(
map(x=>`3-${x}-${new Date().getSeconds()}`)
);
//when one timer emits, emit the latest values from each timer as an array
const combined = combineLatest(timerOne, timerTwo, timerThree);
const subscribe = combined
.pipe(take(5))
.subscribe(
([timerValOne, timerValTwo, timerValThree]) => {
console.log(
` ${timerValOne},
${timerValTwo},
${timerValThree}`
);
}
);
this is the definition for combineLatest() in rxjs
will not emit an initial value until each observable emits at least one value.
now from the above defintion, the output should be
1-2-56,
2-1-57,
3-0-58
instead of
1-0-56,
2-0-57,
3-0-58
because, we will only get the value of the timerThree Observable after 3second by that time the latest value for timerOne would be 2 and the latest value for timerTwo would be 1, am i missing something, please help, thank you