В службе Angular я создал следующую функцию:
getListKey(user) {
firebase.database().ref(`userprofile/${user.uid}/list`).once('value').then(snapshot => {
console.log(snapshot.val())
this.listKey = snapshot.val()
return this.listKey
})
}
Я хочу вызвать эту функцию в другом файле при загрузке и назначить возвращаемое значение глобальной переменной listKey
в службе, которая будет использоваться для другой функции из компонента. Однако вторая функция запускается до того, как данные были получены даже с использованием async
/ await
.
Это соответствующий кусок из моего компонента:
this.afAuth.authState.subscribe(async (user: firebase.User) => {
await this.fire.getListKey(user);
this.fire.getUserList(this.fire.listKey).subscribe(lists => {...})
...
}
Как я могу заставить getUserList()
ждать listKey
?