为什么第二个订阅在订阅两次到rx 2.3中的observable时没有收到任何值?

Rem*_*mko 5 javascript rxjs ecmascript-6

我有这个准系统的例子,根据rxjs文档不符合我的预期.我希望订阅都接收所有值.

文档提到:

然后两个观察者订阅此序列并打印出其值.您将注意到为每个订户重置序列,其中第二个订阅将从第一个值重新启动序列.

let s1 = rx.Observable.from([1, 2, 3, 4, 9, 11])

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete'))

s1.subscribe(
    x => console.log(x), 
    x => console.log(x), 
    x => console.log('complete'))
Run Code Online (Sandbox Code Playgroud)

但是第二个订阅只记录'完整'

事实证明,该示例在rxjs 2.4中按预期工作,但在2.3中没有.有谁知道改变了什么?我无法在发行说明中发现它

这是一个2.3.20的小提琴:小提琴

这是一个2.4.1:小提琴

xgr*_*mmx 2

这对于冷可观察者来说是不正确的行为。从数组创建的 observable 是冷 observable,并且不能在多个观察者上共享订阅。为了正确工作,您可以将可观察量转换为热可观察量。您可以查看此文档http://xgrommx.github.io/rx-book/content/observable/observable_instance_methods/publish.html。在您的情况下,您可以使用类似http://jsbin.com/mowaco/edit?js,console的内容。现在两个订阅并行工作。