Показать сообщение отдельно
  #3 (permalink)  
Старый 30.09.2019, 00:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

2. async функция всегда возвращает промис. По сути своей async/await - это синтаксический сахар позволяющий неявно создавать сложные цепочки промисов и не более того.

1. Классическое решение: забыть про построчное написание кода и передавать вторым параметром callback и вызывать оный по завершению запроса.
//...
  query(sql, callback) {
        this.sql.query(sql, function (err, result) {
            if (err) throw err;
 
            callback(result);
        });
}
//...
function nextStep(result) {
   console.log(result);
}
db.query("SELECT * FROM tbl_chat_room_users", nextStep);

Современное решение: использовать async/await и выполнять нужную цепочку в рамках async функции:
(async function(){

  let result = await db.query("SELECT * FROM tbl_chat_room_users");
  console.log(result);
  //...

}())
__________________
29375, 35

Последний раз редактировалось Aetae, 30.09.2019 в 00:44.
Ответить с цитированием