Uri*_*oss 3 javascript async-await firebase-realtime-database angular
我想返回“用户”对象。
收到错误消息:
变量“user”在分配之前使用。ts(2454)
我尝试使用 async / wait 但我无法在代码末尾将 wait 分配给“返回用户”,或者user= await snapshot.val()因为它位于onValue()范围内。
getLoggedInUser(id: string): User {
const db = getDatabase();
var user: User;
onValue(ref(db, '/users/' + id), (snapshot) => {
user = snapshot.val();
// ...
}, {
onlyOnce: true
});
return user;
}
Run Code Online (Sandbox Code Playgroud)
当您调用时,onValue您将从数据库中的该路径获取当前值,然后还获取该值的所有更新。由于您的回调可能会被多次调用,因此无法返回单个值。
如果您只想获取一次值并返回它,您将需要使用get而不是onValue. 然后你也可以使用async/ await。
async getLoggedInUser(id: string): Promise<User> {
const db = getDatabase();
var user: User;
const snapshot = await get(ref(db, '/users/' + id))
user = snapshot.val();
return user;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6495 次 |
| 最近记录: |