У меня были некоторые проблемы в node js в отношении экспортированных функций, возвращаемых значений или асинхронных вычислений c. Кроме того, я учусь в школе, поэтому, пожалуйста, исправьте и простите меня, если я сделаю несколько ошибок
того, что у меня есть: В моем главном модуле работает сервер с объявлением переменной, равным экспортируемой функции в другом модуле. Возвращаемым значением второго модуля является логическое значение true или false. Я также использую функцию set timeout в моем основном модуле, чтобы проверить, когда булева переменная в моем основном модуле получает значение, которое также дает мне возможность продолжить выполнение моего кода, когда это условие выполнено
моя проблема: На протяжении всего выполнения моя объявленная переменная остается неопределенной, я подозреваю, что переменная никогда не получит возвращенное значение, потому что следующая строка кода запускается в момент запуска функции в экспортированном модуле
мой вопрос: Как правильно вернуть логическое значение в мой основной модуль и запустить функцию в тот момент, когда она была определена?
код основного модуля:
//main module
var authentication = Query(param1, param2);//exported modlule function
function waitForElement(){
if(typeof authentication !== "undefined"){
if (authentication === true) {
//do something
}
else {
//do something else
}
}
else{
setTimeout(waitForElement, 250);
console.log(authentication);
}
}
код экспортируемого модуля:
//a connection with the db above
//var sql = query in string format
//value's are displayed on the console log so it should work up till return
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
if (result != "") {
console.log(true+' boolean in connectDB.js is true');
return true;
}
else {
console.log(false+' boolean in connectDB.js is false');
return false;
}
});
});