我使用 RxJS 4 创建 Hot Observable,就像 official documentation 中描述的那样
但是RxJS 5 migration guid没有解释如何创建 Hot Observable。
const source = Observable.create((observer) => {
asynCall((data) => {
observer.onNext(data)
})
})
const published = source.publish()
published.connect()
published.subscribe((data) => {
console.log(data)
})
使用 Rx5 我遇到了以下错误:
未捕获的类型错误: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);
http://jsbin.com/cupibitehu/1/edit?js,console
上面设置了两个订阅以表明延迟订阅将从当前发射发生的地方开始,而不是重播以前发射的结果。
记录以下内容
"-: 0"
"-: 1"
"-: 2"
"--: 2"
"-: 3"
"--: 3"
"-: 4"
"--: 4"
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-share
关于javascript - 如何在 RxJS 5 中创建 Hot Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155781/