Запрос MySQL не будет выполняться после определенной точки в цепочке обещаний

#node.js #mysql2

#node.js #mysql2

Вопрос:

Я извлекаю данные из Amazon MWS и вставляю их в базу данных MySQL. По какой-то причине команды MySQL перестают выполняться после определенной точки в цепочке обещаний.

Базовый запрос перестает работать, как только мы добираемся до .then (getInventoryDaysRemaining)

 getUSInventory()
   .then(requestInventoryDaysRemainingReportId)
   .then(function() {
    db.query(`select 11111`, function(err, results) { 
        if (err) { 
            console.log(err);
        } else { 
            console.log(results);
        }
    });
   })
   .then(getInventoryDaysRemaining)
   .then(combineInventoryAndDaysRemaining)
   .then(pushCombinedUSInventoryToDatabase)
   .then(function() {
       console.log('Success!');
       process.exit();
   })
   .catch((err) => {
     console.log(err);
     process.exit();
});
  

Я бы ожидал, что базовый запрос MySQL будет выполняться в любой части цепочки, но он останавливается, как только мы доберемся до .then (getInventoryDaysRemaining)

Комментарии:

1. function(err, results) не возвращает обещание.

2. Я обновился, чтобы сделать это, и он будет работать нормально. Однако, если я помещу ту же самую строку кода дальше по цепочке, она не будет регистрировать результаты или ошибку.

3. Просто создайте свою функцию async и верните что-нибудь: .then(async () => { // function body here which returns something }).then(...)