У меня есть две наблюдаемые, которые я хочу объединить с combineLatest
:
const o1 = from(['a', 'b', 'c']);
const o2 = of('content from o2');
combineLatest(o1, o2)
.subscribe(result => console.log(result));
Как я понял combineLatest
, когда выдает любой наблюдаемый объект, он объединяет последние значения всех наблюдаемых и генерирует их:
Когда какой-либо наблюдаемый излучает значение, испускает последнее значение из каждого. (https://www.learnrxjs.io/operators/combination/combinelatest.html)
Однако с приведенным выше кодом вывод будет следующим:
["c", "content from o2"]
Таким образом, только когда o2
излучает, combineLatest
излучает значение.
Если я переключу порядок передачи o1
и o2
, он будет работать должным образом:
const o1 = from(['a', 'b', 'c']);
const o2 = of('content from o2');
combineLatest(o2, o1)
.subscribe(result => console.log(result));
Выход:
["content from o2", "a"]
["content from o2", "b"]
["content from o2", "c"]
Это ожидаемое поведение? Если да, то почему? Это, кажется, противоречит определению ob combineLatest
.