js async和await使用详解

本文介绍JavaScript中async/await的基本用法,包括如何使用、异常处理方法及适用场景,并通过示例代码进行说明。

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

文篇文章讲一讲js 中 async 和 await 使用,围绕 “如何使用” 、“异常处理”、 ”什么情况下使用“ 3个重点给予说明。

async和await如何使用

function p(){
    return new Promise((resolve, reject)=>{
        setTimeout(()=>{
            resolve({
                code:1,
                data:[1,2,3]
            });
        },100);
    })
}

async function ajax(){
    // 等待 promise 回调
    let res = await p();
    console.log(res);
}
// 调用 ajax 方法
ajax();

从以上示例代码总结知识点如下:

  1. 使用 await 语句 的函数必须使用 async 定义;
  2. await 等待的是 Promise 对象的回调;

清楚以上2个关键知识点后,基本已经掌握 async和await 的用法。

async和await 异常处理

通常在开发中,Promise 用于数据的请求,请求就会有失败的情况,那么如何解决 await 使用时的异常问题,看下面代码示例

function p(){
    return new Promise((resolve, reject)=>{
        setTimeout(()=>{
            reject("错误的回调");
        },100);
    })
}

async function ajax1(){
    // 等待 promise 回调
    let res = await p().catch(err=>err);
    console.log(res);
}
// 调用 ajax 方法
ajax1();

async function ajax2(){
    try {
        // 等待 promise 回调
        let res = await p();
        console.log(res);
    } catch (error) {
        // 错误和处理代码
        console.log("ERROR");
    }
    
}
// 调用 ajax 方法
ajax2();

从以上示例代码总结知识点如下:

  1. ajax1 使用 Promise 对象的 catch 回调函数 【小编推荐写法】;
  2. ajax2 使用 try catch 语句捕获异常  【网上大多数教程的写法】;

小编推荐 ajax1 示例方式,代码量和美观性上都要优于 ajax2;

什么情况下应当使用 async 和 await

下面是小编个人的总结:

async 和 await 在有多个异步任务需要控制的时候使用,如果只是2及以下的异步任务,使用 callback 方式也是完全没有问题的。

比如现在有 A B C D E 5个业务数据获取的函数
你的业务逻辑的调用 比如是A 调用B,B调用C,B又可能调用D,可能C有调用E
在这种情况下,你要在每一个获取请求的方法中去做判断。。这个判断和callback 不同的方法,你是没法集中管理的,而且在耦合性上数据的获取和业务逻辑是没有分开的
如果用 await 可以在一个方法中统一处理,原来的5个方法获取是完全不用变的。从原来的业务变动改5个方法,变成只要改一个方法。

作者:黄河爱浪

本文原创,著作权归作者所有,转载请注明原链接及出处

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值