作为示例,我构建了fiddle (已更新为答案)
我喜欢它的功能,但是如果我只输入input1并只给我2和3的“空”结果,我会希望它是火。
像这样可能吗? (在示例中,所有输入都必须具有值)
var obs1 = Rx.Observable.fromEvent(input1, 'input').map((e) => e.target.value);
var obs2 = Rx.Observable.fromEvent(input2, 'input').map((e) => e.target.value);
var obs3 = Rx.Observable.fromEvent(input3, 'input').map((e) => e.target.value);
var counter = 0;
Rx.Observable.combineLatest(obs1, obs2, obs3)
.subscribe(([ res1, res2, res3 ]) => {
span.textContent = 'Result: ' + ++counter + ' -> ' + res1 +
' / ' +
res2 +
' / ' +
res3;
});
答案 0 :(得分:2)
对于startWith
和obs2
,您可以仅使用obs3
运算符:
combineLatest(
obs1.startWith(undefined),
obs2.startWith(undefined),
obs3.startWith(undefined)
).pipe(skip(1)) //skip the initial undefined result set
.subscribe(([res1, res2, res3]) => { ... })