ES6基础入门(四)—— async函数详解

1.async函数的基本使用

2.async函数案例

3.与Generator的对比

<script>
    //1.async函数的基本语法:异步函数,发送异步请求
    
   //发送异步请求的函数
    function getData(code){
        return new Promise((resolve,reject) =>{
        setTimeout(() => {
        console.log(code);
        resolve("hello");
    },2000);
        })
    }
    //async函数的定义
    //async函数的返回值一定是一个promise对象
    //async必须在前一个awite的promise进入resolve状态的时候才会执行下一个await
    //自动往下执行
    //async函数调用了以后,自动执行
    async function sendAjax(){
        //这里的返回值,就是promise对象resolve方法传入的参数
        const res = await getData("first");
        console.log(res); //hello
        await getData("second");
        await getData("third");
        await getData("fourth");
    }
    sendAjax();
    
    //**********************************************************************************//
    //2.案例
    function getData(url){
        return new Promise((resolve,reject){
            $.get(url,data => {
                console.log(data)
                //避免回调函数的嵌套
                resolve(`http://localhost:3000${data.commentUrl}`);
                //reject("未获取到商品信息")
            },"json");
            
         })
    }
    
  //  getData("http://localhost:3000/goods_detail?id=2");
    
    //使用async完成
    async function getGoods(){
       const commentsUrl =  await getData("http://localhost:3000/goods_detail?id=2");
        await getData(commentsUrl );
    }
    //调用async函数
    getGoods();
    
    //跟Generator函数的比较:
    //1.await调用必须返回的是promise对象 2.async调用语法语义更加明确 
    //3.async函数有内部的自动执行器,不用通过next来执行下一步请求
    //不是自动一步步往下走,控制函数执行时机的话使用Generator比较合适
    //按顺序发送请求,一步步往下执行使用async比较合适
</script>


    //跟Generator函数的比较:
    //1.await调用必须返回的是promise对象 2.async调用语法语义更加明确 
    //3.async函数有内部的自动执行器,不用通过next来执行下一步请求
    //不是自动一步步往下走,控制函数执行时机的话使用Generator比较合适
    //按顺序发送请求,一步步往下执行使用async比较合适

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值