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

相关推荐
benbenAItalk5 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
2601_966949655 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin5 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885725 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户5 小时前
Java锁
java·开发语言
西瓜太郎12346 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
多加点辣也没关系6 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2336 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21036 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客7 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm