异步等待承诺

时间:2016-04-16 05:44:32

标签: meteor async-await ecmascript-next

我想知道为什么使用asyncawait的代码不起作用。

// I promisified `github.users.get` which is asynchronous
function getUserData() {
  return new Promise(function (resolve, reject) {
    github.users.get({}, function (err, res) {
      if (err) {
        reject(err);
      } else {
        resolve(res)
      }
    });
  });
}

// Similar to above
function getUserEmails() {
  return new Promise(function (resolve, reject) {
    github.users.getEmails({}, function (err, res) {
      if (err) {
        reject(err);
      } else {
        resolve(res)
      }
    });
  });
}

(async function () {
  let github = new GithubAPI({version: '3.0.0'});
  github.authenticate({
    type: 'oauth',
    token: // auth token
  });

  let userData = await getUserData(); // stuck
  let emails = await getUserEmails();

  // do something
}());

代码永远不会超过let userData = await getUserData();。它被困在那里。

我做错了什么?我正在使用Meteor 1.3.1。

0 个答案:

没有答案