@ThePaleEmperor
Indie gamedeveloper

Почему появляется ошибка при использовании callback?

Во время выполнения get-запроса выполняется функция, которая получает список из БД, а по окончанию её выполнения ответ отоправляется как undefined. При попытке использовать callback ничего не меняется, и ответ undefined. Как это исправить?
Сам код
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Потому что вы пытаетесь синхронно использовать асинхронный код.
app.get('/page', function(req, res, next) {
  callback_(function(err, count) {
    if (err) {
        // Обрабатываем ошибку
        return res.status(500).end();
    }

    console.log(count); // выводит нужный результат

    res.render('page', {
      postCount: count
    });
  });
})

var callback_ = function(cb) {
  setTimeout(function() {
    getPostCount(cb)
  }, 5000);
}

var getPostCount = function(cb) {
  connection.query("SELECT COUNT(*) FROM posts", function(err, result, fields) {
    if (err) return cb(err);

    cb(null, result.length);
  });
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы