You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Node.js运行代码时提示Unexpected token async错误?

问题原因与解决方案
  • 第一个Unexpected token async报错:是异步函数语法书写错误导致。JavaScript规定async关键字需要放在函数定义的最前面,普通异步函数的正确声明规则为async function 函数名(),对象类的异步方法规则为async 方法名(),你书写的func() async不符合语法规范,直接触发解析错误。Node.js v10.24.1已经原生支持async/await语法,该报错和版本无关。
  • 第二个Unexpected token {报错:是删除async后函数声明规则缺失导致。普通函数声明必须添加function前缀,正确写法为function func() {,你直接写func() {会被JS引擎识别为调用func函数,后续的{不属于合法的调用语法,因此抛出错误。
  • 隐藏问题:你写的getName函数内部创建了Promise实例,但没有将实例return出去,就算语法修正后,await getName()也只能拿到undefined,无法获取数据库查询结果。

修正后可正常运行的代码

function getName(){
    // 新增return返回Promise实例
    return new Promise((resolve, reject) => {
        conn.query("SELECT name FROM members WHERE id=1", (err, res, fields) => {
            if (err) reject(err);
            resolve(res);
        });
    });
}

// 调整async位置,补全function关键字
async function func() {
    try{
        const data = await getName();
        console.log(data);
    } catch(e) {
        console.log(e);
    }
}

内容的提问来源于stack exchange,提问作者Cain Nuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:00:00