【发布时间】:2021-12-19 16:05:21
【问题描述】:
我正在尝试从后端获取状态,直到满足条件,但我不想通过永远发出请求来使服务器过载:)。我想在一分钟后停止发出请求。 这是代码
this.statusService
.getStatus(this.itemId).pipe(
repeatWhen(obs => obs.pipe(delay(500))),
filter(data => {
if(data.status === 'done'){
return true;
}else{
return false;
}
}),
take(1)
).subscribe(result =>{
console.log(‘done')
});
我尝试了 timeout() 但它并没有停止发出请求
this.statusService
.getStatus(this.itemId).pipe(
timeout(60000),
repeatWhen(obs => obs.pipe(delay(500))),
filter(data => {
if(data.status === 'done'){
return true;
}else{
return false;
}
}),
take(1)
).subscribe(result =>{
console.log(‘done')
});
【问题讨论】:
-
您的超时当前设置为 1m 和 40 秒。一分钟你需要输入 timeout(60000)
-
@Jahrenski 我认为这不是解决方案,但我更新了 :) 谢谢
标签: javascript angular typescript rxjs