【发布时间】:2020-11-22 16:03:41
【问题描述】:
我想知道在 angular RxJS 中执行以下操作的最佳实践。
- 在页面加载时,我需要 http 获取对象的详细信息
- 根据对象的状态,我需要反复轮询对象的状态,直到它准备好,如果它还没有准备好。或者如果它准备好了就停止轮询。
- 可以随时将对象的状态从准备好更改为未准备好,或未准备好更改为准备好。这可以从投票结果中设置,也可以在用户需要时由用户按需设置。
我尝试过类似以下的方法,但觉得这不是最好的解决方案:
this.http.getObjectDetails(this.id).subscribe()
timer(1000, 1000)
.pipe(
filter(() => this.object.status != 'READY'),
concatMap(() => {
return this.http.checkObjectStatus(this.id)
})
).subscribe()
首先,它没有连接两个订阅,其次,我不确定它是否可以处理状态从就绪变为未就绪的情况。
谢谢
【问题讨论】:
-
如果我们在准备好时停止轮询,我们如何知道状态更改为未准备好?
-
@ArashHatami。我有一个 ui 按钮,允许用户检查以强制检查。