望着definition的combineLatest
combine在Rxjs 5中的最大行为?
结合多种观测量,以创建一个可观察其值 从它的每个输入观测值的最新值来计算。
或
每当任何输入可观察发出的值,它使用从所有输入的最新值计算出一个公式 ,然后发射的 ,式输出。
,很明显地看到,在时间/发射的每一个时期,在这个发射的结果是最新排放的组合。
如果是这样,看着这个代码
const obs1 = Rx.Observable.of(1, 2, 3, 4, 5);
const obs2 = Rx.Observable.of('a', 'b', 'c')
const obs3 = obs2.combineLatest(obs1, (a, b) => a+b);
const subscribe = obs3.subscribe(latestValues => {
console.log(latestValues );
});
结果是:
c1,c2,c3,c4,c5
当我改变
obs2.combineLatest(obs1..
到
obs1.combineLatest(obs2..
- 我得到5a,5b,5c
问:
的文档没有指定有关调用的顺序有什么区别(如果有的话 - 为什么我得到不同的结果)?为什么我看不到其他来源的其他组合?似乎有一个来源正在取其最后一个值,然后只有 - 将它加入来自其他来源的每个值。
好像这是什么实际发生的事情:
[other source]---a---b---c------------------------
[first source]-------------1----2-----3-----4----5
[result]-------------------c1---c2----c3----c4---c5
当我换的顺序(OBS1 < - > OBS2):
[first source]-----1--2---3--4--5----------------
[other source]---------------------a-----b------c
[result]---------------------------5a----5b-----5c
这是怎么回事?为什么一个流必须完成才能启动连接?
为什么我没有看到这样的事情(或变化):
[first source]-----1-----2--------3-------4------5---
[other source]---------a-----b------c----------------
[result]---------------1a------2b------3b---4c-------5c
那么rx4会发出不同的结果? –
我认为RxJS 4默认使用所谓的* immediate * scheduler,所以结果很可能与rxJS 5不同。 – martin