我想合并来自多个observable的最新发射值,所以现在我使用.withLatestFrom。除此之外,它将数据嵌套在嵌套数组中,而不是将数据推送到新的数组值。示例代码如下。
如何使用.withLatestFrom?
检索多个可观察发射的任何想法.withLatestFrom(source1)
.withLatestFrom(source2)
.withLatestFrom(source3)
.map((data) => { console.log(data) });
答案 0 :(得分:29)
withLatestFrom
支持多个observable:
.withLatestFrom(source1, source2, source3)
.map((data) => { console.log(data) });
-> [val, value1, value2, value3]
它还支持函数作为它的最后一个参数,因此您可以获得除数组之外的值:
observable$
.withLatestFrom(source1, source2, (val, one, two) => {
return {val: val, one: one, two: two};
});
答案 1 :(得分:3)
withLatestFrom接受多个observable。所以你可以这样写:
let obs1$ = Rx.Observable.of('a');
let obs2$ = Rx.Observable.of('b');
Rx.Observable.interval(1000)
.withLatestFrom(obs1$, obs2$)
.subscribe(x=>console.log(x))