Оператор RxJS5 похож на .combineLatest, но срабатывает всякий раз, когда испускается один наблюдаемый объект.

Я ищу способ объединить несколько Observables в плоский кортеж скалярных значений — аналогичный .combineLatest() — но с тем исключением, что он должен выдавать новый кортеж значений, даже если в одном из исходных наблюдаемых не было выдано никакого значения — yieldung " undefined» в кортеже для тех наблюдаемых, которые еще не были отправлены.

Пример:

const s1 = new Subject<string>();
const s2 = new Subject<string>();

Observable.combineWithUndefined(s1, s2).subscribe( ([t1, t2]) => {
    console.log(t1.toString() + " " + t2.toString());
});

s1.next("Hello");
s2.next("John");

// expected output:
// Hello undefined
// Hello John

person Dynalon    schedule 24.11.2016    source источник


Ответы (1)


Сделайте две темы startWith значение undefined, поэтому, когда один из then выдает первое значение, combLatest также выдает и комбинирует его с начальным значением другого субъекта.

person alebianco    schedule 24.11.2016