当前位置: 首页> 娱乐> 影视 > JS:异步输出顺序问题

JS:异步输出顺序问题

时间:2025/8/23 9:21:49来源:https://blog.csdn.net/qq_45820271/article/details/139639146 浏览次数:0次

闲着没事儿出一道异步的题给大伙儿打发时间

先看题目:

<script>
2  console.log("1"); // 同步任务4  setTimeout(() => {
5    console.log("2");
6  }, 0);
7
8  Promise.resolve().then(() => {
9    console.log("3");
10  });
11
12  (async () => {
13    console.log("4");
14
15    await new Promise((resolve) => {
16      console.log("5"); 
17      resolve(); 
18    });
19
20    console.log("6"); 
21  })();
22
23  console.log("7");
24
26</script>

解题思路:同步任务=>微任务=>下一个宏任务

再看解析:

    <script>//同步任务console.log("1");//宏任务setTimeout(() => {console.log("2");}, 0);//微任务Promise.resolve().then(() => {console.log("3");});//定义一个异步函数(async () => {//同步任务console.log("4");//await new Promise会立即执行,但是会等待Promise的状态变为resolved后再执行后面的代码//这里依旧是同步代码的一部分await new Promise((resolve) => {//同步任务console.log("5");//romise通过resolve()变为fulfilled,await表达式就会完成,后续的任务会在微任务队列中执行resolve();});//微任务console.log("6");})();//同步任务console.log("7");//打印顺序:1 4 5 7 3 6 2</script>

关键字:JS:异步输出顺序问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: