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

Chrome本地打开HTML出现'Uncaught SyntaxError: Unexpected identifier 'Promise'错误排查

错误原因分析
  • 你在setTimeout中写了asyncFunc(),这会立即执行这个async函数,返回一个Promise对象。
  • setTimeout的第一个参数要求是函数或可执行的字符串代码,当传入非函数值时,会被强制转换为字符串并通过eval执行。这里Promise对象转换后的字符串(如Promise {<resolved>: undefined})不符合JavaScript语法,因此触发Unexpected identifier 'Promise'的语法错误。
  • 你觉得功能正常,是因为asyncFunc()被立即执行了,控制台提前输出了日志,而错误是在1秒后setTimeout尝试解析无效字符串时才抛出的。
消除方法

把setTimeout中的函数调用改为传递函数引用:

window.setTimeout(asyncFunc, 1000);

这样setTimeout会在1秒后才调用asyncFunc,既符合延迟执行的需求,也不会传入无效的Promise对象,错误自然消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:49:59