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