2 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
正如 Daniel 在評(píng)論中所解釋的那樣,外部函數(shù)永遠(yuǎn)不會(huì)返回 true。異步解決方案可能是這些:)
function name_match(user_id, user_realname) {
return new Promise(function (resolve, reject) {
var dbref = firebase.database().ref();
var namesref = dbref.child("names");
namesref.on("value", function(snapshot) {
var matched = false;
snapshot.forEach(i => {
if(i.key == user_id && i.child("realname").val() == user_realname) {
matched = true;
}
});
if (matched) {
resolve()
} else {
reject()
}
});
});
}
在調(diào)用函數(shù)的另一邊
name_match('userId', 'userName').then(function(){
//matched
}, function(){
//unmatched
});
其他方法是使用回調(diào):
function name_match(user_id, user_realname, cb) {
var dbref = firebase.database().ref();
var namesref = dbref.child("names");
namesref.on("value", function(snapshot) {
var matched = false;
snapshot.forEach(i => {
if(i.key == user_id && i.child("realname").val() == user_realname) {
matched = true;
}
});
cb(matched);
});
}
在這種情況下:
name_match('userId', 'userName', function(matched) {
console.log(matched);
})
添加回答
舉報(bào)