2017-03-09 46 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

相關問題