js 中关于 async和await ,自己的理解

首先,需要明白一点:只要一个函数前面加了async,那么这个函数最后return的结果一定是一个promise对象

    async function async1() {
        return '555'
    }
        
    console.log(async1())

结果:

如果需要拿到最终return的结果,可以通过.then方式获取结果

    async function async1() {
        return '555'
    }

    async1().then(res =>{
        console.log(res)
        // 555
    })

也可以通过await拿到结果,因为await本身就有解析promise的作用(此处注意:await不能单独写,必须写在async异步函数里面,不然会报错)

    async2()
    
    async function async1() {
        return '555'
    }
    
    async function async2() {
        console.log(await async1())
        // 555
    }

上面具体理清楚了一遍async和await的使用,下面再具体看一下await中“等待”的使用

将下面这段代码执行一下,通过浏览器打印的顺序,我们很明显的看到await的作用

    async function async1() {
        await async2()
        alert(111)
    }

    function async2() {
        return new Promise(resolve => {
            setTimeout(() => resolve(), 2000)
        })
    }

    async1()

执行代码后可以发现,浏览器会等待2秒才弹出111,这样就达到一个阻塞代码的效果,强制代码同步进行,也就是所谓的“等待”!(需要注意的是,await后面装饰的函数返回的结果必须是一个promise实例对象,才可以阻塞代码)

由此应用到项目实战中,就可以在await后面写一个调用接口的promise函数,.then等到这个接口响应出对应的数据,再执行await下一行的代码!!!

 以上仅为个人理解,如果有误,还望各位大佬能够积极指出,谢谢大家了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值