什么是 async、await ?

async/await 是 JavaScript 中用于处理异步操作的一种语法糖。它们使得异步代码的编写和阅读更加简洁和直观。

具体来说,async 函数是一个返回 Promise 对象的函数,可以在函数内部使用 await 关键字来等待 Promise 对象的解析。await 关键字会暂停函数的执行,直到 Promise 对象解析完成并返回结果。

下面是一个简单的示例,展示了 async/await 的用法:

javascript 复制代码
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function fetchData() {
  console.log('开始获取数据');
  await delay(2000); // 等待2秒钟
  console.log('数据获取完成');
  
  return 'Data';
}

async function main() {
  console.log('开始执行主函数');
  const data = await fetchData(); // 等待 fetchData 函数执行完成并返回结果
  console.log('获得数据:', data);
}

main();

在上述示例中,fetchData 函数是一个异步函数,它使用 await 关键字等待 delay 函数的 Promise 对象解析完成。当 await 表达式执行时,函数的执行会暂停,直到 Promise 对象状态变为 resolved(或者 rejected)后再继续执行。

main 函数中,我们使用 await 等待 fetchData 函数执行完成,并获取其返回结果。

使用 async/await 可以有效地处理回调地狱(callback hell)问题,使异步代码更加易读、易写和维护。

相关推荐
yinke小琪6 分钟前
JavaScript DOM节点操作(增删改)常用方法
前端·javascript
枣把儿10 分钟前
Vercel 收购 NuxtLabs!Nuxt UI Pro 即将免费!
前端·vue.js·nuxt.js
望获linux12 分钟前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
爱编程的喵13 分钟前
从XMLHttpRequest到Fetch:前端异步请求的演进之路
前端·javascript
喜欢吃豆16 分钟前
深入企业内部的MCP知识(三):FastMCP工具转换(Tool Transformation)全解析:从适配到增强的工具进化指南
java·前端·人工智能·大模型·github·mcp
豆苗学前端19 分钟前
手把手实现支持百万级数据量、高可用和可扩展性的穿梭框组件
前端·javascript·面试
不见_19 分钟前
不想再写周报了?来看看这个吧!
前端·命令行
yinke小琪21 分钟前
JavaScript 事件冒泡与事件捕获
前端·javascript
pany23 分钟前
写代码的节奏,正在被 AI 改写
前端·人工智能·aigc
liliangrong77726 分钟前
ES2025新特性详解
前端