gpt4 book ai didi

angular - 如何在运行下一行代码 Angular2 之前等待 AngularFire2 订阅完成

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:15 27 4
gpt4 key购买 nike

我的 Angular2 Type Script 代码有问题。我正在尝试通过订阅 FirebaseListObserver 来访问 Firebase 数据库中的问题:

this.af.list('/questions').subscribe( val => {
this.questions = val
console.log(this.questions) // works
})
console.log(this.questions) // displays undefined

不过,在运行依赖于 this.questions 的函数之前,我不知道如何等待订阅获取值。

我尝试使用 async/await,但也没有等待订阅获取值。

我也尝试在 promise 中订阅,但也返回了一个空数组。

最佳答案

您可以从 subscribe 回调中运行该函数,也可以将 questions 转换为 setter/getter:

private _questions = [];

set questions(questions) {
this._questions = questions;

// React to questions changes here
}

get questions() {
return this._questions;
}

如果您熟悉 Angular 的早期版本,它会有点像观察者。因此,在 set 函数中,您可以检查 questions 是否有值并对其使用react,调用您需要的任何函数。

关于angular - 如何在运行下一行代码 Angular2 之前等待 AngularFire2 订阅完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143850/

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