当前位置: 首页 > news >正文

Javascript中立即调用的异步函数表达式

  在学习使用Playwright/Typescript的过程中看到这样的代码结构:

(async () => {
//代码体
})()

以下是ChatGPT生成的解释:

(async () => {})() 是一个 立即调用的异步函数表达式(Immediately Invoked Async Function Expression,简称 IIFE)。它包含几个关键点,下面逐一解释:

1. async () => {}

这是一个 异步箭头函数async 函数)。在 JavaScript 中,async 函数总是返回一个 Promise。即使函数内部没有明确的 return,它也会自动将函数的返回值包装成一个 Promise 对象。异步函数可以使用 await 来等待异步操作(如网络请求、文件读取等)的完成。

在这段代码中,async () => {} 是一个匿名的异步箭头函数,它的作用是将包含异步逻辑的代码包装在一个函数中。

2. () (调用函数)

async () => {} 后面紧接着一个小括号 (),这表示 立即调用 这个函数。这种模式常见于 JavaScript 中的 立即执行函数表达式(IIFE),它的作用是立即执行定义好的函数。这里加上了 async 关键字,使得这个函数变成了一个异步函数。

3. 完整结构解析

  • (async () => { ... }) 定义了一个异步箭头函数。
  • () 在函数定义后面调用这个异步函数,使得它在定义后立刻执行。

为什么要使用立即调用的异步函数(IIFE)?

  1. 模块化代码:通过这种方式,你可以将异步操作封装在一个独立的作用域中,避免污染全局作用域。
  2. 简洁性:如果你不想显式地定义一个函数,然后再调用它,可以直接使用这种简洁的方式立即执行代码。
  3. 异步代码执行:在顶层使用 await 是不被允许的(因为它会阻塞后面的代码),所以我们需要通过一个异步函数来包装它,从而在函数内部使用 await

举个例子

假设你有一段异步操作,不想单独创建函数,可以直接将异步操作写在立即调用的异步函数中:

(async () => {
    const result = await fetch('https://api.example.com/data');
    const data = await result.json();
    console.log(data);
})();

在这个例子中,异步操作是在一个匿名异步函数中执行的,这使得代码更紧凑且易于理解。

相关文章:

  • Jupyter Notebook切换虚拟环境(Kernel管理)
  • 深度学习(3)-TensorFlow入门(常数张量和变量)
  • 【深入理解JWT】从认证授权到网关安全
  • 基于DeepSeek-R1-70b的医疗AI训练推理框架的详细解析
  • Kubernetes与Docker:区别与优劣总结
  • 浅谈新能源汽车充电桩建设问题分析及解决方案
  • Linux:(3)
  • Wpf 之Generic.xaml
  • seacms v9 实现的MySQL注入
  • SQLite 安装教程以及可视化工具介绍
  • python处理文件(完成文件分类)
  • 弱监督语义分割学习计划(1)-简单实现Open Vocabulary Label但是效果不好
  • 面试之《react hooks在源码中是怎么实现的?》
  • 添加成对约束后的标签传播算法研究:使用Python语言编写算法,在空手道数据集下验证算法的准确性,在一定程度上解决非对齐问题
  • 【算法工程】大模型局限性新发现之解决能连github但无法clone项目的问题
  • 使用自制工具类实现安全的密码加密与校验
  • 实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能
  • winfrom的progressBar 鼠标移上去显示 进度条的时间
  • LeetCode 15.三数之和
  • Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻
  • 网站制作说明书/建站系统主要包括
  • wordpress 可以干嘛/seo关键词首页排名
  • 做网站的公司需要哪些资质/电商网络推广是什么
  • 建设机械网站机构/百度网盘免费下载
  • 做网站时的尺寸/建立网站的流程
  • WordPress站群模版/2024免费网站推广大全