Я использую библиотеку mysqljs, которая делает асинхронный запрос базу, и возвращает результат в callback функцию:
var data = [];
connection.query('select * from `users` where `is_enabled` = 1;', (err, response) => {
if(err) throw err;
data = response.map(item => item.value);
console.log(data)//array data
});
console.log(data)//undefined
Мне понятно почему так происходит, но не смотря на гору перечитанного материала, я так и не смог вывести данные так, чтобы с ними можно было работать синхронно, либо вся логика должна быть внутри асинхронной функции, либо внутри нее же вызвать другую и передать данные туда, и таким образом результат ее работы снова недоступен синхронному коду и это может продолжаться бесконечно. Существует ли способ сохранить асинхронные данные в переменную и работать синхронно? Заранее благодарен за помощь.