今天的码农女孩总结了事件循环机制的笔记和例子

事件循环机制(event loop)
进程:是系统分配的独立资源。是cpu资源分配的基本单位,进程是有一个或多个线程组成
线程:是进程的执行流,是cpu调用和分布的基本单位,多个线程可以共享一个进程资源
浏览器是多线程的,每一个标签都是独立的进程,但是空白的标签会被合成一个进程
事件循环机制:js是单线程的,但是会分为同步和异步执行,可以通过异步函数来模拟多进程,例如webworker技术
事件循环机制执行顺序
首先,事件循环机制会将栈中的所有同步任务执行完毕,站内被清空后,出现了空闲状态,才会执行异步队列,在队列里会按顺序执行异步任务,先执行微任务,后执行宏任务,直到所有执行完毕,每次栈被清空,就会执行队列,一直这样循环,叫做事件循环机制
微任务和宏任务
微任务:then,catch...MutationOserver(nodejs)
宏任务:script代码,setTimeout,setInterval,ajax

例子1:

console.log(1)

        setTimeout(function(){

            console.log(3)

        },0)

        var p=new Promise(function(){

            console.log(4)

            res(22)

        }).then(function(){

            console.log(5)

        })

        setTimeout(function(){

            console.log(6)

        },0)

        console.log(2)

        解:142536 同步1 4 2 执行微任务5 在执行宏任务3 6

例子2:

console.log(1)

        setTimeout(function(){

            console.log(3)

        },0)

        var p=new Promise(function(res,rej){

            console.log(4)

            setTimeout(function(){

                console.log(8)

            },0)

            res(22)

        }).then(function(v){

            console.log(5)

        })

        .then(function(v){

            setTimeout(function(){

                console.log(7)

            },0)

        })

        setTimeout(function(){

            console.log(6)

        },0)

        console.log(2)

        解:14253867

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值