异步函数—async/await

本文介绍了ES8中async/await的使用,它解决了Promise链式调用的问题,使得异步代码更加同步化。async函数返回Promise,await用于等待Promise结果,并能捕获异常。通过示例展示了如何在async函数中使用await处理多个Promise任务,以及异常处理。async/await提供了更清晰的代码结构,降低了异步编程的复杂性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异步函数——async/await

ES8中的async/await旨在解决利用异步结构组织代码的问题。

async函数

  • async函数返回的是一个Promise对象
async function test(){
    return '123';
}
const res = test();
console.log(res);
//控制台输出:

在这里插入图片描述

await函数

  • await必须要放在async函数中

  • await返回的是Promise成功的值

  • await的promise失败,就会抛出异常,需要try-catch捕获并处理

    const p = new Promise((resolve,reject)=>{
      		resolve('成功!');  
    })
    async function test(){
        let res = await p;
        console.log(res);
    }
    test();//调用函数
    //控制台输出:成功!
    
    //await的premise失败,需要用try-catch捕获
    const p = new Promise((resolve,reject)=>{
      		reject('失败!');  
    })
    async function test(){
        try{
            let res = await p;
        	console.log(res);
        } catch(e){
          console.log(e);  
        }
    }
    test();//调用函数
    //控制台输出:失败!
    

async/await结合使用

//
function request1(){
    return new Promise((resolve,reject)=>{
        //读取资源代码
    })
}
function request2(){
    return new Promise((resolve,reject)=>{
        //读取资源代码
    })
}
function request3(){
    return new Promise((resolve,reject)=>{
        //读取资源代码
    })
}
//以上三个函数返回结果都是Promise对象
//声明一个async函数
async function test(){
    //获取所读取到的内容
    const result1 = await request1();
    const result2 = await request2();
    const result3 = await request3();
    console.log(result1);
    console.log(result2);
    console.log(result3);
}
//调用
test();

从上可以看出async/await 的优势在于处理then链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值