await调用promise碰到一些问题,烦请看一看

发布于 2022-09-06 06:27:38 字数 1301 浏览 25 评论 0

国际惯例,先贴上代码

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我乃一代侩神 2022-09-13 06:27:38

async和function的位置换一下
async function

情仇皆在手 2022-09-13 06:27:38
let getAccessToken = async function (req,res,next) {
}

async反了的话跟async/await没关系了,相当于定义了一个名字为async的函数

梦开始←不甜 2022-09-13 06:27:38

错误的原因是 函数awaitToken没有定义成asyncawait调用的函数必须是async的;

另外就像楼上们说的 getAccessToken函数定义为async错了

天煞孤星 2022-09-13 06:27:38

注意function async(){}async function(){}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文