-
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
});
网友评论