async、await

async、await

ES7关键字,处理异步函数

async函数返回的是Promise对象

        // async函数返回的是promise对象
        async function ac(){
            return 1 ; // 封装返回一个Promise对象
        }
        console.log(ac());  // 返回一个promise对象

        async function ac2(){
            return Promise.resolve(1);   // 直接返回promise
        }
        console.log(ac2());   // 返回一个promise对象

await

得到异步操作的结果,对应Promise.then(),必须写在async函数中

        // // aWait得到异步操作的结果,对应Promise.then()  必须在async函数中使用
        // 1.直接await一个promise对象
        async function ac3() {
            let b = Promise.resolve(1);
            let data = await b;   // 相当于a().then(r=>console.log(r))
            console.log(data);    
            console.log(11);   
        }
        ac3();
  • 我们可以直接await一个promise对象
  • 也可以await一个值
        async function ac6 () {
            let b = Promise.resolve("aa")
            let data = await b;
            console.log("data",data);
        }
        ac6();
        async function ac4(){
            let data = await 4;
            console.log(data);
        }
        ac4();

async函数中遇到await表达式会强制暂停,等待异步操作完毕,恢复执行顺序

            function time (){
                return new Promise(res=>{
                    setTimeout(()=>{
                        console.log("lalala");
                    res();
                    },1000)
                })
            }

        async function ac5 (){
            await time();   // 如果没有await,那么ac5会打印在前面,有await会ac5会打印在后面
            console.log("ac5");   
        }
        ac5();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值