gpt4 book ai didi

javascript - RxJS 检测长时间运行的订阅

转载 作者:行者123 更新时间:2023-11-30 11:35:00 25 4
gpt4 key购买 nike

我目前正在使用 RxJS Observables/Subscription 来执行 HTTP 请求,如下所示的代码类似:

this.waiting = true;
this.doSomething().subscribe(
(result) => {
this.waiting = false;
this.showResult= true;
}
);

我真正想做的,只是在预定的时间长度内将 this.waiting 设置为 true。换句话说,只有当 Observable 在 30 秒内没有返回时,你才是真正的“等待”。想知道如何实现这一目标。我看到有一个可用的 .timer 方法,但它只会在该时间长度后开始订阅?

最佳答案

看看timeout()timeoutWith()运营商。这些没有文档,但您可以从它们的参数中猜出它们的作用。

timeout() 运算符在一段时间不活动后发送一个错误 通知。

timeoutWith() 我想让你在一段时间不活动后用另一个 Observable 替换源 Observable。

最后,如果你想避免这两个运算符,你可以使用 Observable.race,它只在内部订阅第一个发出的 Observable:

Observable.race(Observable.timer(30 * 1000).take(1), this.doSomething())

关于javascript - RxJS 检测长时间运行的订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com