await调用promise碰到一些问题,烦请看一看
国际惯例,先贴上代码
let awaitToken = function (options){
return new Promise((resolve, reject) => {
request(options, function (err, res, body) {
if (res) {
resolve(JSON.parse(body));
} else {
reject(err);
}
});
})
}
let getAccessToken = function async (req,res,next) {
let queryParams = {
'grant_type': 'client_credential',
'appid': config.appId,
'secret': config.appSecret
};
let wxGetAccessTokenBaseUrl = 'https://api.weixin.qq.com/cgi-bin/token?' + qs.stringify(queryParams);
let options = {
method: 'GET',
url: wxGetAccessTokenBaseUrl
};
let result = await awaitToken(options)
if (result){
res.send(result)
}else{
res.send('something err')
}
};
运行 这段代码运行不通,在let result = await awaitToken(options)
处报错,报错如下图
上网查了一下,这个报错是语法错误,难道是没有找到awaitToken
这个方法么,我觉得不太应该啊,还是说await
没有接收到awaitToken
返回回来的参数?还是说我这个async-await
的使用方法错误???试了半天试不出来个结果,烦请帮忙看下,不胜感激~
node环境 7.6.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
async和function的位置换一下
async function
async反了的话跟
async/await
没关系了,相当于定义了一个名字为async的函数
错误的原因是 函数
awaitToken
没有定义成async
,await
调用的函数必须是async
的;另外就像楼上们说的
getAccessToken
函数定义为async
错了注意
function async(){}
和async function(){}