RxJS 踩坑实录
提醒:本文最后更新于 4 年前
,文中所描述的信息可能已发生改变,请谨慎使用。
observer 在订阅时才创建
let x
let source = Rx.Observable.create(observer => {
x = observer
observer.onNext(Date.now())
setInterval(() => {
console.log('diff', x === observer, observer, x)
}, 1000)
}).take(3)
setInterval(() => {
x.onNext(Date.now() + ' ')
}, 2000)
source.subscribe(createObserver('SourceA'));
source.subscribe(createObserver('SourceB'));
function createObserver(tag) {
return Rx.Observer.create(
function (x) {
console.log('Next: ' + tag + x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
只有 SourceB 的订阅会被触发,这个使用应该用 BehaviourSubject