2017-03-09 18 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を使用してください。

関連する問題