1 关于执行顺序
<body> <script> console.log(3); setTimeout(() => { console.log(2); }, ); Promise.resolve().then(()=>{ console.log(1); }) </script> <!-- 这个块单独运行return 3 1 2 --> <script> async function show(){ console.log(4); var res = await 5; console.log(res); } show(); console.log(6); </script> <!-- 这个块单独运行return 1 2 100 --> <!-- 两个块一起运行 return 3 1 4 6 5 2 --></body>
<body> <!-- 1.promise 中的语句除了resolve,reject能直接执行 2.遇到await先跳出函数执行他的同步代码,最后执行自己 3.定时器最后执行 --> <script> async function show(){ console.log("start"); var res = await go(); console.log(res); } async function go (){ return 1; } show(); setTimeout(() => { console.log(4); }, ); var p = new Promise((resolve,reject)=>{ console.log(2); resolve(3); console.log(5); }) p.then((res)=>{ console.log(res); }) console.log("end"); </script> <!-- return start 2 5 end 1 3 4 -->