Promise async await 异步操作

本文深入探讨了JavaScript中的异步编程,通过实例讲解了setTimeout的使用,如何将它封装成Promise,以及如何利用async/await进行更优雅的异步控制。文章详细阐述了Promise的工作原理,并展示了如何通过async函数将异步操作转化为同步风格的代码,帮助开发者更好地理解和掌握异步编程技巧。
摘要由CSDN通过智能技术生成

具体看以下几篇文章,我这里只贴代码
https://juejin.im/post/6844903527924367367
https://zhuanlan.zhihu.com/p/51373575
https://blog.csdn.net/qq_40240053/article/details/108765515
https://zh.javascript.info/settimeout-setinterval

// 典型的异步
setTimeout(
   function () {
       console.log('123')
   },
   1000   
)
// 封装成 Promise
new Promise((resolve,reject)=>{
    setTimeout(()=>{
        let rnd = Math.random()
        if(rnd > 0.5)
            resolve(rnd)
        else
            reject(rnd)
    }, 1000)
})
.then(res=>console.log('resolve=', res))
.catch(err=>console.log('reject=', err))

// 把Promise封装成一个函数的返回值
let p1 = ()=> new Promise((res,rej)=>    
        setTimeout(()=>{
            let rnd = Math.random()
            if(rnd > 0.5)
                res(rnd)
            else
                rej(rnd)
        }, 1000)
    )
    
// 用async/await封装Promsie,用同步的方式写异步
let q1 = async ()=>{
    try {
        let res = await p1()
        console.log('await res=', res)
    }
    catch(err) {
        console.warn('awati rej=', err)
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值