zoukankan      html  css  js  c++  java
  • 同步、异步、回调函数面试经典问题

    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

  • 相关阅读:
    ORA-01565 ORA-15025 ORA-27041
    11g r2 vip启动过程
    控制文件多路径复用ORA-00205错误
    sqlmap 整合Meterpreter
    Mataasploit 常见问题
    AWVS的安装、破解与使用
    hydra常见场景
    php 学习笔记
    python学习笔记
    计算机网络基础,网络协议,常见状态码
  • 原文地址:https://www.cnblogs.com/webdom/p/11654001.html
Copyright © 2011-2022 走看看