繁体   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