同步异步回调函数面试经典问题
Posted pengzhao-mr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步异步回调函数面试经典问题相关的知识,希望对你有一定的参考价值。
1、首先需要记住的是这么一句话
同步先行==》异步靠边=》回调垫底
<script> var a = new Promise(function () console.log(1); setTimeout(() => consoel.log(2), 0); console.log(3); console.log(4); resolve(true); ) a.then(v => console.log(8) ); var b = new Promise(function () console.log(5); setTimeout(() => console.log(6), 0); ); console.log(7);
</script>
上面这道题打印的顺序是什么?
首先来分析一下:还是那句话 同步先行==》异步靠边=》回调垫底
Promise是一个异步操作,是指的是then(),catch()方法,内部的代码还是同步的!
1.进入a的promise函数里面先打印1,遇到setTimeout回调垫底,扔到消息队列中排队等候
2.打印为134,遇到异步的 resolve(true) 靠边,因为同步还没有执行完毕
3.进入b的promise函数里面,打印5,遇到setTimeout回调垫底,扔到消息队列中排队等候
4.bpromise出来之后打印7,然后打印异步8,最后是回调2,6
5,最终的结果打印是13457 8 26
以上是关于同步异步回调函数面试经典问题的主要内容,如果未能解决你的问题,请参考以下文章