Gre*_*ier 5 javascript rxjs rxjs5
我使用RxJS 4来创建Hot Observable,如官方文档中所述
但是RxJS 5迁移指南没有说明如何创建Hot Observable。
const source = Observable.create((observer) => {
asynCall((data) => {
observer.onNext(data)
})
})
const published = source.publish()
published.connect()
published.subscribe((data) => {
console.log(data)
})
Run Code Online (Sandbox Code Playgroud)
使用Rx5,我遇到以下错误:
未被捕获的TypeError:source.publish不是函数(…)
您可以使用.publish().refCount()(或.share()作为别名)
var source = Rx.Observable.interval(1000)
.take(5)
.publish().refCount();
source.subscribe( item => console.log(`-: ${item}`));
setTimeout(() => {
source.subscribe( item => console.log(`--: ${item}`));
}, 2500);
Run Code Online (Sandbox Code Playgroud)
http://jsbin.com/cupibitehu/1/edit?js,控制台
上面设置了两个订阅,以显示延迟的订阅将从发生当前发出的事件开始,而不重播先前发出的结果。
记录以下
"-: 0"
"-: 1"
"-: 2"
"--: 2"
"-: 3"
"--: 3"
"-: 4"
"--: 4"
Run Code Online (Sandbox Code Playgroud)
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-share