流星:为什么`Promise.await`不需要`Promise.async`?

时间:2016-02-10 20:46:22

标签: javascript node.js asynchronous meteor promise

我试图制作一个方法,等待多个承诺得到满足(更容易使用此应用程序的承诺)。我认为async/await包中的Promise可以完成这项工作。我做了以下功能。

execute: Promise.async(function (routine) {
  let listener = Meteor.bindEnvironment(data => console.log(data));
  this.on('data', listener);

  Promise.await(Promise.all([
    this.sendCommand('startup'),
    this.sendCommand('begin process'),
    this.awaitMessage('ok')
  ]).finally(res => {
    this.removeListener('data', listener);
  }));
});

这不起作用,因为它立即返回。但是,如果我从函数中删除Promise.async,它似乎完全正常,就像将来包装的函数一样。

这是为什么?通常,在使用es7 async / await的节点应用程序中,它看起来像这样:

let login = async function () {
  let user = await getUserRecord();
  return await login(user);
}

那么,我在流星上做错了吗?

0 个答案:

没有答案