0

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

但它使用回调。我想同步得到结果!

4

1 回答 1

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 的Promise更多信息async/await

于 2019-03-27T16:06:35.220 回答