簡體   English   中英

如何使用延遲訂閱從observable返回最后一次發出的值

[英]How to return last emitted value from observable with late subscribe

請考慮以下代碼段

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完成(注意我需要一個共享的observable)

要創建一個共享的observable,將最后一次發射的值重放給后期訂閱者,請替換:

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

有:

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

share類似於.publish().refCount() ,因此如果要重放最后發出的值,可以使用publishReplay代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM