async/await

async/await 是 JavaScript 中处理异步操作的语法糖,基于 Promise 实现,让异步代码的写法更接近同步代码,极大提升了可读性和可维护性。

async 函数

  • 定义:使用 async 关键字声明的函数,始终返回一个 Promise
  • 作用:将函数内部的异步操作封装在 Promise 中,简化异步流程。

async function fetchData() {

// 返回值会自动包装为 Promise

return 'Hello, World!';

}

// 等价于

function fetchData() {

return Promise.resolve('Hello, World!'); } // 调用 async 函数 fetchData().then(console.log); // 输出: Hello, World!

await

定义:只能在 async 函数内部使用,用于暂停函数执行,等待 Promise 解决(resolved)或拒绝(rejected)。

作用:以同步的方式编写异步代码,避免回调地狱。

// 模拟异步操作(2秒后返回结果)

function fetchData() {

  return new Promise(resolve => {

    setTimeout(() => {

      resolve('数据加载完成!');

    }, 2000);

  });

}

 

// async 函数中使用 await

async function main() {

  console.log('开始加载数据...');

  

  // 暂停执行,等待 Promise 解决

  const result = await fetchData();

  

  // 2秒后才会执行这里

  console.log(result); // 输出: 数据加载完成!

  console.log('程序继续执行...');

}

 

// 调用 async 函数

main();

暂停执行:await fetchData() 会暂停 main() 函数的执行,直到 fetchData() 返回的 Promise 被解决(resolve)。

同步写法:虽然 fetchData() 是异步的,但通过 await,代码看起来像同步执行。

结果获取:await 会直接返回 Promise 解决的值(resolve() 的参数)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值