async函数-await

  1. await 必须用在被 async 修饰的函数内(因为 await 会阻塞代码,但是阻塞的范围要限制在 async 函数执行的范围内)
  2. 箭头函数中,添加 async 函数要写在参数的前面
  3. await 是在异步函数内部使用的关键字,用于等待一个 Promise 对象的解决(成功)或拒绝(失败)。当使用 await 关键字时,它会暂停函数的执行,直到等待的 Promise 对象状态变为解决。然后,它会提取 Promise 的成功结果并将其赋值给一个变量。

具体工作原理如下:

当遇到 await 关键字时,函数的执行会暂停,但不会阻塞整个应用程序或线程。这允许其他任务继续执行,使程序更具有响应性。

await 后面通常跟随一个 Promise 对象。如果 Promise 成功解决,await 表达式将返回成功的结果,并且函数会继续执行。如果 Promise 被拒绝,它将引发一个异常,可以通过 try...catch 块来捕获和处理。

如果 await 后面跟随的不是一个 Promise 对象,而是一个普通的值,那么 JavaScript 会将该值包装成一个已解决的 Promise 对象,然后立即解决,并将该值作为成功的结果返回。这使得 await 可以等待非 Promise 值的完成,但依然会在原地等待。

请注意,尽管 await 在代码中会暂停执行,但它不会阻塞整个应用程序。在等待异步操作完成时,事件循环将继续运行其他任务。

const fn = async () => {
      const res = await 10
      console.log(res)
    }
fn()
// 输出是10
posted @   唯有风  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示