什么是 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)问题,使异步代码更加易读、易写和维护。

相关推荐
Bigger6 分钟前
Tauri (26)——托盘图标总对不上系统主题?一行 Template Image 搞定
前端·rust·app
To_OC32 分钟前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
kyriewen2 小时前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试
甲维斯3 小时前
又升级咯!坦克大战2026,科技与复古并存!
前端·人工智能·游戏开发
Goodbye5 小时前
从 Token 到 Embedding:LLM 核心基础深度解析
javascript·人工智能
用户938515635075 小时前
工具调用背后:LLM 如何突破“缸中大脑”,操控真实世界?
javascript·人工智能
Goodbye5 小时前
从函数到智能:LLM Tool Use 深度解析
javascript·人工智能
半个落月5 小时前
大模型到底是怎么“调用工具”的?从一个 Node.js Demo 看懂 Tool Use
javascript·人工智能
搬砖的码农5 小时前
(08)为什么我的 Agent 一跑后台服务就卡死
前端·agent·ai编程