Объявите переменную, равную экспортируемой функции, и запустите функцию, однажды объявленную в node js - PullRequest
0 голосов
/ 08 января 2020

У меня были некоторые проблемы в 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;
      }
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...