作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力从 Firebase 检索数据。基本上我正在创建一个约会应用程序,当用户“喜欢”某人时,它应该检查显示的用户喜欢的人数组以查看当前用户是否在那里,然后“匹配”他们,如果他们是的话
我有这个功能:
pullFromFirebase = (displayedUser) => {
return new Promise((resolve, reject) => {
firebase.database().ref('users/' + displayedUser.id + '/usersLiked/').once('value').then(function(snapshot) {
const users = Object.keys(snapshot.val()).map(function(key) {
return snapshot.val()[key];
})
});
})
}
此功能有效,因为当我使用 console.log(users) 时,我得到了喜欢的人的数组。然而,当我这样调用这个函数时
async checkForMatch (currentUser, displayedUser) {
const likedUsers = await this.pullFromFirebase(displayedUser);
console.log(likedUsers, 'likedUsers');
}
控制台中没有记录任何内容?当我拿走异步的东西时,console.log 只是说它正在等待。我做错了什么或者为什么我不能在我的 checkformatch
函数中显示用户?
最佳答案
你从未在 pullFromFirebase
方法中解决你的 promise
检查代码
pullFromFirebase = (displayedUser) =>
{
return new Promise((resolve, reject) =>
{
firebase.database().ref('users/' + displayedUser.id + '/usersLiked/').once('value').then(function (snapshot)
{
const users = Object.keys(snapshot.val()).map(function (key) {
return snapshot.val()[key];
})
resolve(users); // <--- here is the fix
});
})
}
关于javascript - 如何对 firebase 进行异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491064/
我是一名优秀的程序员,十分优秀!