【发布时间】:2021-02-12 01:41:44
【问题描述】:
我希望此函数从此函数返回布尔值,但我无法这样做。我是 react native 和 javascript 的新手。
checkBlocked(userId) {
firebase.database().ref('Blocked/' + firebase.auth().currentUser.uid)
.orderByChild('uid').equalTo(userId).once('value').then(snapshot => {
if (snapshot.exists()){
var isBlocked = true;
}
else {
var isBlocked = false;
}
})
return isBlocked;
}
【问题讨论】:
-
你没有考虑异步。
firebase.database()....once()返回一个承诺。如果您需要承诺的结果来决定它应该是tru还是false,您不能只返回true或false。你必须返回一个用true或false解决的承诺 -
@aligumustosun 给出的下面的答案返回一个用
true或false解析的Promise。您可以通过在异步函数中等待它或传入.then回调来使用该值:checkBlocked(userId).then(val => this val is true or false) -
@TkoL 谢谢队友,我必须在几个小时内推动这些更改,如果你能在你的答案中编写代码 sn-p 将是一个很大的帮助 我是一个菜鸟。提前谢谢你。
-
没有足够的上下文让我为你写任何东西。我不知道你在哪里需要结果。
标签: javascript reactjs react-native return boolean