特点:
await 相当于then,获取promise--resolve的结果await 后面如果是promise 会得到then的结果await 关键字只能在async函数中使用 不能在普通函数中使用await 后面不一定跟promiseawait会阻阻塞函数后面的代码 切割函数 会优先执行同步的代码 之后再去执行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 pconsole.log(res);}show()

在函数前加上async
<script>var p = new Promise((resolve, reject) => {resolve(1)reject(2)})async function show() {var res = await pconsole.log(res);}show()</script>

await 后面不一定跟promise
<script>//await 后面不一定跟promiseasync function show() {console.log(1);await mid()console.log(3);}async function mid() {console.log(2);}show()</script>
await会阻阻塞函数后面的代码 切割函数 会优先执行同步的代码 之后再去执行await之后的代码
<script>//await 后面不一定跟promiseasync 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");})

