Promise中 异步async(高冷女)和 等待 await(舔狗)

本文深入探讨了JavaScript中的async函数和await表达式,讲解了它们如何简化异步代码的编写。async函数返回一个Promise,而await用于等待Promise解析,返回其值。如果await后的Promise被拒绝,会抛出异常,需要try...catch捕获。示例代码展示了await在处理多个Promise时的顺序和错误处理。同时,通过舔狗await原理的解释,揭示了async函数内部如何转换为Promise的then方法。

1.async修饰的函数
        函数的返回值为Promise对象
        Promise实例的结果由async函数执行的返回值决定的
2.await表达式
        await右侧的表达式一般为Promise实例对象,但也可以是其他值
        (1)如果是Promise实例对象,await后的返回值是promise成功的值
        (2)如果表达式是其他值,直接将此值作为await的返回值

3.注意
        await必须写在async函数中,但async函数中可以没有await
        如果await的promise实例对象失败了,就会抛除异常,需要通过try....catch来捕捉处理
 

 

<div>async await</div>
<script>
    const p1 = new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('a')
        })
    })
    const p2 = new Promise((resolve,reject)=>{
        setTimeout(()=>{
            reject('b')
        },3000)
    })
    const p3 = new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('c')
        },5000)
    })
    ;(async()=>{
     try{
        const A =  await p1
        console.log(A)
        const B =  await p2
        console.log(B)
        const C =  await p3
        console.log(C)
     }catch(error){
        console.log('出错了',error)
     }
    })()
</script>

舔狗await原理

<script>
    const p1 = new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('a')
        },2000)
    })
// 使用await,隐藏回调的写法
//  async function dome(){
//     const A = await p1
//     console.log(A)
//   }

// 浏览器翻译后的代码
async function dome(){
    p1.then(
        resolve =>{
            console.log(resolve)
        }
    )
}
dome()
console.log('你好')
</script>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值