【发布时间】:2020-12-31 21:22:41
【问题描述】:
要求 调用服务。
如果该服务返回数据,请将数据设置为变量。功能超过
如果该服务返回 data = null,则每 20 秒重复调用该服务,直到它返回 data=“列表或对象”或调用该服务 2 分钟并停止。
我尝试了什么 需要每 20 秒轮询一次此服务 getUrlById(id),直到我在 this.url 中得到响应或 6 分钟后超时。
尝试了以下没有按预期工作的解决方案。
pollUrl(id) {
interval(2000).pipe(
timeout(600000),
takeWhile(() => this.url)
).subscribe(i => {
this.service.getUrlById(id).subscribe(res =>{
if(res && res["result"]){
this.url = res["result"];
}
})
})
}
来自评论我尝试了什么
在这里调用了虚拟服务,demo。
这里的虚拟服务返回 data = null。所以根据要求,我需要每 20 秒调用一次服务,直到 2 分钟。那是行不通的。
这段代码没必要用,我要达到要求。可以有不同的方法。
【问题讨论】:
-
@user630209查看我的更新 -
如果响应数据为空,服务需要再次调用。这不起作用。
-
状态:429,状态文本:“请求过多”
-
发生错误后可观察到的停止
标签: angular typescript rxjs angular8