2017-03-09 45 views
1

考虑下面的代码片段如何最后发出的值从观察到的回报与后期订阅

const interval$ = Rx.Observable.interval(1000).share(); 

interval$.subscribe(x=> console.log('a=' + a)); 

setTimeout(() => { 
    interval$.subscribe(x=> console.log('b=' + b)); 
}, 1500); 

JSFIDDLE

我需要已故用户也返回最后发出的值(即0在这种情况下, )。这怎么可能用RxJS(注意:我需要一个共享观察到的)

回答

3

要创建共享观察到的是重播最后发出的值后期用户完成,替换:

const interval$ = Rx.Observable 
    .interval(1000) 
    .share(); 

有:

const interval$ = Rx.Observable 
    .interval(1000) 
    .publishReplay(1) 
    .refCount(); 

share.publish().refCount()类似,所以如果要重播最后发出的值,则可以使用publishReplay

相关问题