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

为何JavaScript中await会等待Promise resolve?代码逻辑疑问

为什么console.log("world")会等待Promise完成后执行?

这核心是**await关键字的作用**——它专门用来暂停async函数的执行流程,直到它右侧的Promise对象状态变为resolved(已完成),才会继续执行await之后的代码。

拆解你的代码逻辑:

  • 调用main()后,进入这个async函数的执行流程。
  • 遇到await new Promise(...)时,main函数会立刻暂停执行,把程序控制权交还给调用它的上下文。
  • 此时Promise内部的setTimeout开始计时,1秒后触发回调:先打印hello,然后调用resolve(),把这个Promise的状态从pending(等待中)改成resolved。
  • 一旦Promise状态变为resolved,之前暂停的main函数会恢复执行,继续运行await后面的console.log("world")。

简单说,await就是给async函数加了个"暂停等待"的开关,必须等它绑定的Promise完成,才会往下走。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:26:26