javascript - 在 takeUntil 之后调用 lastvalue
问题描述
我有一个服务调用,我正在检查它是否每 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 从未被调用,它直接调用方法 subscribe 方法。
有没有办法在takeUntil()
返回 true 后执行另一个方法/函数。
解决方案
timer(2000)
它会在 2 秒后发出 0,然后完成。TakeUntil 等待何时this.notifier()
完成并停止发出值。您的间隔在 5 秒后发出第一个值,因此这种情况永远不会发生,因为 takeUntil 将停止发出值。
当您更改参数时,例如:
const interval = Rx.Observable.interval(1000)
const notifier = Rx.Observable.timer(2000)
在这种情况下,您的 executeAnotherApiCall() 方法将运行一次。
推荐阅读
- excel - 从错误的单元格开始访问 VBA 导出到 Excel
- java - liquibase-maven-plugin 与 testcontainers 的使用
- python - 无法使用 Python 将文件上传到 Azure Notebooks 中 Azure Datalake Gen 2 中容器中的目录
- windows - Postgresql:端口 5432 上的连接被拒绝
- kubernetes - Kubernetes 没有为入口分配地址
- laravel-5 - Laravel:没有默认值
- c# - JumpTask.IconResourcePath 的几何
- r - R igraph:根据顶点 ID 或名称为节点着色
- pandas - 如何将此 KNN 代码应用于我的数据集?
- apache-spark - 如何获取增量表的最新插入时间?