码迷,mamicode.com
首页 > 其他好文 > 详细

同步、异步、回调函数面试经典问题

时间:2019-08-08 21:41:59      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:顺序   执行   time   队列   str   cti   打印   style   pre   

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

 

同步、异步、回调函数面试经典问题

标签:顺序   执行   time   队列   str   cti   打印   style   pre   

原文地址:https://www.cnblogs.com/PengZhao-Mr/p/11323706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!