gpt4 book ai didi

javascript - 如果 bool 值在任意点为真且持续时间超过 X 秒

转载 作者:行者123 更新时间:2023-11-28 12:59:31 25 4
gpt4 key购买 nike

我正在使用 Angular、Ionic 和 Firebase 构建一个应用。

在页面加载时,我将 bool 值 isLoading 设置为 true,当数据在应用程序中加载时, bool 值设置为 false >。这非常可靠,但有时,如果互联网速度慢/出现故障,isLoading 永远不会设置为 false,或者更确切地说,应该完成的功能,没有。

所以我的问题是,我可以进行某种订阅或“检查”以查看应用程序运行时 isLoading 是否为 true 时间超过 3 秒活跃?

到目前为止,代码非常简单:

定义 isLoading bool 值:

isLoading: boolean = true;

调用firebase数据库:

ngOnInit() {
this.loadUser();
});

loadUser() {
this.database.database.ref('/users/'+this.user.uid).once('value', (snapshot) => {
this.isLoading = false;
});
});

如果isLoading在任何时候为true超过3秒,我该如何重新调用loadUser()

最佳答案

您可能需要检查错误条件和 setInterval 的组合。这样您就可以在等待时定期执行某些操作,并且可以处理来自 firebase 的错误

loadUser() {
let interval = setInterval(() => {
if (this.isLoading) {
//You are still waiting
}
}, 3000)
this.database.database.ref('/users/'+this.user.uid).once('value', (snapshot) => {
this.isLoading = false;
clearInterval(interval);
},
(error) => {
//Handle error case
clearInterval(interval);
});
};

我对 firebase 不太熟悉,但您可能需要在 ref 调用中执行类似的失败回调,以防错误存在而不是处理 once

关于javascript - 如果 bool 值在任意点为真且持续时间超过 X 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131968/

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