我想知道为什么使用async
和await
的代码不起作用。
// 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。