特点:
await 相当于then,获取promise--resolve的结果
await 后面如果是promise 会得到then的结果
await 关键字只能在async函数中使用 不能在普通函数中使用
await 后面不一定跟promise
await会阻阻塞函数后面的代码 切割函数 会优先执行同步的代码 之后再去执行await之后的代码
await会阻塞函数的执行 会优先执行await后面同步的代码 异步代码要等待同步代码执行完毕后再去执行
<script>
//await 关键字只能在async函数中使用 不能在普通函数中使用
// await 相当于then,获取promise--resolve的结果
async function show() {
console.log("1");
var p = go()
console.log(p);
console.log(3);
}
async function go() {
return "2"
}
show()
</script>
1- await 相当于then,获取promise—resolve的结果
var p = await go()
2-await 后面如果是promise 会得到then的结果
<script>
//await 后面如果是promise 会得到then的结果
async function show(){
console.log("1");
var p=await Promise.resolve("2")
console.log(p)
console.log(3);
}
show()
</script>
3-await 关键字只能在async函数中使用 不能在普通函数中使用
var p = new Promise((resolve, reject) => {
resolve(1)
reject(2)
})
function show() {
var res = await p
console.log(res);
}
show()
在函数前加上async
<script>
var p = new Promise((resolve, reject) => {
resolve(1)
reject(2)
})
async function show() {
var res = await p
console.log(res);
}
show()
</script>
await 后面不一定跟promise
<script>
//await 后面不一定跟promise
async function show() {
console.log(1);
await mid()
console.log(3);
}
async function mid() {
console.log(2);
}
show()
</script>
await会阻阻塞函数后面的代码 切割函数 会优先执行同步的代码 之后再去执行await之后的代码
<script>
//await 后面不一定跟promise
async function show() {
console.log(1);
await mid()
console.log(3);
}
async function mid() {
console.log(2);
}
show()
console.log("a1");
</script>
将原代码切成了这样
await会阻塞函数的执行 会优先执行await后面同步的代码 异步代码要等待同步代码执行完毕后再去执行
async function a1(){
console.log("a1");
await a2();
console.log("end");
}
async function a2(){
console.log("a2");
}
a1()
console.log("a3");
Promise.resolve().then(()=>{
console.log("a4");
})