Mopecat / Daily-Mission-Board

每日任务公告板。
4 stars 1 forks source link

任务四:简述eventloop #4

Open LB-nan opened 4 years ago

LB-nan commented 4 years ago

eventloop:事件环,事件环就是js事件执行顺序。

因为js是单线程的,所以他的事件是串行,因为是单线程,所以进程中只有一条线程,线程是计算机任务的最小单位。

js的异步事件会再次开辟一条线程,称为:任务队列,是一个栈结构,栈结构的特点:栈只能从表的一端存取数据,另一端是封闭的。

任务队列分为微任务和宏任务,微任务在等主线程全部执行完毕之后会清空微任务,微任务清空完成之后会去执行宏任务

微任务:

浏览器端:promise.then() node:promise.then() process.nextTick

宏任务:

浏览器端:定时器系列,script标签引用,ajax,事件回调,requestFrameAnimation node: I/O任务, 定时器系列(setTimeout, setInterval , setImmediate) setImmdiate()这个方法浏览器端只有IE才有,node自己也实现了一个,这个方法不需要写时间,会在I/O宏任务执行完毕之后立即执行

执行顺序:script加载js 主线程执行 微任务 宏任务