我有一个服务电话,正在检查它是否每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之后,是否有一种方法可以执行另一个方法/功能。
答案 0 :(得分:2)
timer(2000)
的工作原理是2秒后发出0,然后完成。在this.notifier()
完成之前等待直到发出值。您的时间间隔会在5秒后发出第一个值,因此这种情况将永远不会发生,因为takeUntil将停止发出值。
更改参数时,例如:
const interval = Rx.Observable.interval(1000)
const notifier = Rx.Observable.timer(2000)
在这种情况下,您的executeAnotherApiCall()方法将运行一次。