async/await

目录

async

await

async/await

捕获异常-try/catch

对比Promise


async

  • 返回Promise对象
  • return 字面量在async中会被自动通过Promsie.resolve()封装为Promsie对象
  • 若其中没有await,则没有等待阻塞,等同于promsie

await

得到的结果

  • 非Promise对象:即普通函数调用,则await运算结果就是其调用结果
  • Promise对象:await会阻塞后面代码,直到该Promise对象获得resolve值,即作为await的运算结果
function getSomething(){
    return "1"
}

async function testA(){
    return Promise.resolve("2")
}

async function test(){
    const v1 = await getSomething()
    const v2 = await testA()
}

async函数中,await函数调用不会造成阻塞,因为内部的所有阻塞会被封装成一个Promise对象中进行异步操作。

async/await

Generator语法糖

捕获异常-try/catch

async function fn(){
    try{
        let a=await Promise.reject('error')
    }catch{
        console.log(error)
    }
}

对比Promise

Promiseasync/await
代码可读性then几乎是同步写法
传递之间值麻烦几乎是同步写法
错误处理冗余try/catch
调试没法搞可打断点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值