Асинхронные запросы в node.js, ожидание и обещания - PullRequest
0 голосов
/ 31 января 2020

Мне трудно объединить функции в node.js, я не могу заставить получателя ждать. Разве обещания не должны быть асинхронными и, следовательно, подходить для такой задачи?

const promise = new Promise((resolve, reject) => {
  var input = 'SELECT * FROM ideas;';
  connection.query(input, (err, results) => {
    if(err) {
      console.log(err);
      reject();
    } else {
      console.log('success');
      results = JSON.stringify(results);
      console.log(results);
      resolve();
      return results;
    }
  })
});

promise.then(function(results) {
  results = JSON.parse(results);
  console.log(results);
});

Надеюсь, кто-то знает, чего мне здесь не хватает, и может помочь!

Ответы [ 2 ]

1 голос
/ 31 января 2020

? Вам нужно только добавить results к resolve и err к reject.

?‍? Например, вы можете использовать следующий код: ?

const promise = new Promise((resolve, reject) => {
  var input = 'SELECT * FROM ideas;';
  connection.query(input, (err, results) => {
    if(err) {
      reject(err);
    } else {
      console.log('success');
      results = JSON.stringify(results);
      console.log(results);
      resolve(results);
    }
  })
});

promise.then(function(results) {
  results = JSON.parse(results);
  console.log(results);
}).catch(error => {
  console.log(error);
})

Надеюсь, он вам поможет ?.

0 голосов
/ 31 января 2020

Отправьте некоторые данные обратно в оператор reject () или resol (). В настоящее время вы ожидаете некоторых результатов, но отправляете уведомление. Просто преобразуйте выражение «Отклонить и разрешить» следующим образом: resolve(results); reject(err);

Дополнительный совет, также объедините блок перехвата с вызовом promise.then, чтобы исключения также обрабатывались успешно. следующим образом promise.then(function() { //code if promise resolves }).catch(function(){ //code if promise rejects });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...