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

调用async函数时使用await报错‘await is only valid in async function’的原因

解决 "await is only valid in async function" 错误

兄弟,这个报错的原因特别直接——你在start函数里用了await,但start本身并没有被标记为async函数呀!

await的使用规则很明确:它只能在async函数内部运行,不管这个函数是表达式形式还是声明形式。你现在的start是个普通同步函数,突然在里面用await,JS引擎肯定会抛出错误。

修复方法超简单

只需要把start函数改成async函数就行,两种写法都可以:

写法一:函数表达式加async

var start = async function(a,b){ 
  // ... 你的其他业务代码
  const result = await helper.myfunction('test','test'); 
}

写法二:箭头函数版本(如果偏好这种风格)

const start = async (a,b) => {
  // ... 你的其他业务代码
  const result = await helper.myfunction('test','test'); 
}

改完之后,start就变成了异步函数,里面的await就能正常工作,等待myfunction这个异步操作完成后再继续执行后续逻辑。

额外提一句:当你调用start的时候,它会返回一个Promise,如果需要处理它的执行结果或者捕获可能的错误,记得用.then()/.catch()链式调用,或者在另一个async函数里用await来调用它哦。

内容的提问来源于stack exchange,提问作者j.doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:26:29