使用 rxjs 7.5.7,当轮询 http 请求在几个 false 值之后最终返回 true 时,我返回一个承诺,但是 takeUntil 永远不会再被调用。
我尝试以下代码:
return timer(0, 5000).pipe(
takeUntil(this.http.get('https://testapi/isTrue'))
.pipe(filter((isTrue: boolean) => {
return isTrue; // filter method filters false values so they are not emitted
}))
)
).toPromise();
注意:
https://testapi/isTrue
多次返回 false,最后一次返回 true。
但是在第一次调用调用结果为false的定时器发起的http查询请求this.http.get()之后,定时器5秒之后什么都没有发生,没有错误,takeUntil中的this.http.get()也不再被调用。
那么我的指令有什么问题?
注意2:返回的promise被正确使用