Это называется асинхронность. Гугли на тему, информации вагон.
Если вкратце, то: вызов функции происходит сейчас, возврат из функции получается сразу после вызова, а ответ из базы приходит когда-нибудь потом, когда база подумает.
Варианта всего два:
1. использовать callback - функцию которая будет вызвана поле завершения запроса(та самая
function(err, result, row) {
);
2. использовать Promise
function CheckLoginPromise(login){
return new Promise(
(resolve, reject) => DataBase.Handle.query('SELECT * FROM `users` WHERE `login` = ?', [login], function(err, result, row) {
if(err) return reject(err);
if(result.length > 0) {
console.log(result);
return resolve(true);
}
resolve(false);
})
)
}
CheckLoginPromise(login).then(bool => {
// делаем что-то
})
2а. использовать async\await сахар для Promise.
const bool = await CheckLoginPromise(login);