• Javascript事件循环机制 浅尝手记


    引入

    众所周知Javascript是一个单线程的机制,虽然可以依托多线程的浏览器实现页面如何实现页面复杂的渲染、事件响应,但仍不会改变其单线程的本质;所以对于js的事件循环机制的了解是一个前端人员的必备基础之一。
    

    1 几个相关的简单概念(以下备注均以javascript为前提)

    _ 执行上下文:execution context——js代码执行当前代码段的环境、变量的构成,参考
    _ 函数调用栈-call stack——调度js代码、函数执行先后顺序的,一种有序数据结构,遵循FILO,参考
    _ 队列-queue——调度js代码、函数任务执行先后顺序,一种有序数据结构,遵循FIFO,参考

    2 事件循环(Event loop)

    以下为简单记录,日后有时间再整理,

    涉及主要概念:
    

    1.函数调用栈
    2.任务队列:
    2.1 task: script、I/O、 UI-rendering、setTimeout、setInterval、setImmediate
    2.2 jobs: process、Promise、

    主要代码:

     console.log(6,"timeout:")
     });
    new Promise(function(resolve){
     console.log(1,"promise1");
           for(var i=0;i<100;i++){
     	i==99&&console.log(2,"resolve");
     };
     console.log(3,"promise2");
     }).then(function(resolve){
     console.log(5,"then")
    });
    console.log(4,"global")
    

    执行结果:

     2 "resolve";
     3 "promise2";
     4 "global";
    undefined ;//暂时不清楚此处原因
     "timeout:"
    
  • 相关阅读:
    jsp
    session
    cookie
    异常
    静态导入 可变参数与collectiions集合工具 集合嵌套
    HashMap和LinkedHashMap
    map集合
    匿名对像,,,内部类
    电脑版校网登录助手
    360舵机与180舵机
  • 原文地址:https://www.cnblogs.com/hbzyin/p/7039715.html
Copyright © 2020-2023  润新知