ES6异步函数sync

  • es6新增的sync是用来解决异步编程的函数,最常见的异步编程就ajax请求,一般开发中都会遇到一个场景,就是封装了一个ajax请求函数,需要获取请求的结果才能进行下一步的操作,那这时候,就不能直接用变量接收ajax的返回值,因为不知道什么时候请求完成,而js的代码运行是不会等待请求的完成,它一直向下运行,这个时候变量接收的值是undefind,只能把逻辑操作放到请求成功的回调中。es6里面解决这个问题推出了sync函数。
使用sync函数
  • 使用sync函数,需要在函数前面加上sync标识,表示这是一个异步函数,使用await命令等待异步请求的结果(需要在请求成功的回调中return一个值),用变量接收,await运行完毕之后才会继续向下运行,sync函数返回的是一个promise,所以也可通过.then的方式拿到异步结果。
普通函数
function set(){
            var result;
            $.ajax({
                url:"https://v1.itooi.cn/netease/banner",
                type:"GET",
                success:function(res){
                    result=res;
                    return res
                }
            })
            console.log(result)//undefined
        }
        set()
sync函数
 async function get(){
           var result=await $.ajax({
                url:"https://v1.itooi.cn/netease/banner",
                type:"GET",
                success:function(res){
                    return res
                }
            })
            console.log(result)//data
            return result;
        }
get().then((res)=>{
            console.log(res)//data
        });

你可能感兴趣的:(ES6异步函数sync)