我正在使用Javascript进行一些奇怪的行为。
在此函数中,我传递了用户通过html中的输入标签提交的索引。 在Firebase数据库中检查了索引,它返回了正确的答案,但是当我尝试比较if语句中的函数return时,它总是以执行代码的“ else”部分结束。 这是我的代码。
function productExists(index) {
console.log("INDEX: "+ index);
db.orderByKey().equalTo(index).once("value",snapshot => {
if (snapshot.exists()){
console.log("true");
return true;
}
else {
console.log("false");
return false;
}
});
}
以及正在调用上一个函数的函数:
function registerProduct() {
var x = document.getElementById("input").elements;
console.log("x[0].value="+ x[0].value);
if (productExists(x[0].value)){
window.alert("ID already exists");
}
else {
db.child(x[0].value).update({
id: x[0].value,
product_name: x[1].value,
man_name: x[2].value,
pur_price: x[3].value,
sel_price: x[4].value,
});
window.alert("Product added to database!");
}
}
我测试输入和传递参数的log可以正常工作,唯一的问题是if语句始终警告else语句。