Async 函数是Generator函数语法糖;
语法:
在function前面加async关键字;
箭头函数async关键字放在形参的前面;
返回的是一个promise对象;
await 等待;
1.await后面的值,不会返回到函数的外部;
2.async函数内可以有多个await
3.await等待的是后面表达式的结果值;注意,如果是promise对象,默认情况下只返回成功状态值;
4.await有阻塞后面代码执行作用,await后面的表达式有结果之后,下面的代码才可以执行;
5.async函数内部是同步任务;不影响主线程上任务的执行顺序;
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script>
function myAjax({
type = "get",
url,
data = {}
}) {
return new Promise((resolve, reject) => {
$.ajax({
type,
url,
data,
success: function(response) {
let {
result: {
data
}
} = response;
resolve(data)
}
});
})
}
async function demo() {
let res1 = await myAjax({
url: "http://www.ujiuye.tech:3000/api/category/first"
})
let id = res1[2].first_id;
let res2 = await myAjax({
url: "http://www.ujiuye.tech:3000/api/category/second",
data: {
id
}
})
console.log(res2)
}
demo()