在takeUntil之后调用lastvalue

时间:2019-06-03 17:52:45

标签: javascript rxjs observable

我有一个服务电话,正在检查它是否每5秒返回true或false。

notifier(){
   return Rx.Observable.of(true) // based on some condition       
}

executeAnotherApiCall(){

}

const interval = Rx.Observable.interval(5000)


interval
  .takeUntil(() => this.notifier())
  .map((x) => this.executeAnotherApiCall())

问题是从不调用executeAnotherApiCall,它直接转到调用方法subscription方法。

takeUntil()返回true之后,是否有一种方法可以执行另一个方法/功能。

1 个答案:

答案 0 :(得分:2)

timer(2000)的工作原理是2秒后发出0,然后完成。在this.notifier()完成之前等待直到发出值。您的时间间隔会在5秒后发出第一个值,因此这种情况将永远不会发生,因为takeUntil将停止发出值。

更改参数时,例如:

const interval = Rx.Observable.interval(1000)
const notifier = Rx.Observable.timer(2000)

在这种情况下,您的executeAnotherApiCall()方法将运行一次。