如何在使用Nodejs时同步获取实体

时间:2019-03-27 10:15:38

标签: node.js azure-storage-account

我正在尝试获取存储帐户表的数据。 我使用here的方式成功获取了日期。

但是它正在使用回调。我想同步获得结果!

1 个答案:

答案 0 :(得分:1)

您可以编写一个辅助函数,该函数返回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

详细了解MDN上的Promiseasync/await