Как получить сущности синхронно при использовании Nodejs - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь получить данные таблицы учетной записи хранения. Мне удалось получить дату, используя способ здесь .

Но он использует обратный вызов. Я хочу получить результаты синхронно!

1 Ответ

1 голос
/ 27 марта 2019

Вы можете написать вспомогательную функцию, которая возвращает Promise, чтобы сделать его synchronous (или имитировать его)

function getSome(mytable, hometasks, num)
  return new Promise((resolve, reject) => {
    tableSvc.retrieveEntity(mytable, hometasks, num, function(error, result, response){
      if(!error){
        resolve(entity // result or response etc)
      } else {
        reject(error)
      }
    });
  })

Затем вы можете использовать в другом месте вашего кода с async/await (чтобы приостановить выполнение) как

Обратите внимание, что вы можете использовать await только внутри async функции

async function useData() {
  const data = await getSome('mytable', 'hometasks', '1');
  // use data here
}

или с простым обещанием как (Обратите внимание, это не приостанавливает выполнение, код внутри thenфункция обратного вызова снова)

const data = getSome('mytable', 'hometasks', '1');
data.then(res => // do something)

Также выглядит cosmos имеет sdk с поддержкой Promise.

Подробнее о Promise и async/await в MDN

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