RxJS5运算符与.combineLatest类似,但只要发出单个observable就会触发

时间:2016-11-24 12:38:40

标签: javascript typescript rxjs rxjs5 angular2-observables

我正在寻找一种方法将多个Observable组合成一个标量值的扁平元组 - 类似于.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

1 个答案:

答案 0 :(得分:2)

使两个主题startWith成为未定义的值,因此当其中一个发出第一个值时,combineLatest也将发出并将其与另一个主题的起始值相结合。