我对此很新,所以我真的希望有人可以帮助我。
我的斗争是一些“未定义的”变量,我相信这是由于异步函数。
我的代码的简化版本:
document.getElementById("applyButton").addEventListener("click", () => {
// Variables from input form
var nameInput = document.getElementById("nameID").value;
var typeInput = document.getElementById("typeID").value;
// Database lookups
var thisNameID = getNameID(nameInput);
var thisTypeID = getTypeID(typeInput);
// Some code with the variables
var newQuery = "INSERT INTO myTable (myNameID, myTypeID) VALUES ('" + thisNameID + "', '" + thisTypeID + "');";
console.log("Query: ", newQuery);
});
function getNameID (input){
// do some database lookup
return returnedNameID;
};
function getTypeID (input){
// do some database lookup
return returnedTypeID;
};
在控制台中我得到:
Query: INSERT INTO myTable (myNameID, myTypeID) VALUES ('undefined', 'undefined');
如何确保我等待功能回复?我一直在研究Promise和Callbacks以及其他类似的问题,但必须承认我很困惑,并且无法解决如何在我的代码中实现它。
如果有人能通过承诺或类似的解决方案向我展示实施。
非常感谢提前!