Open LB-nan opened 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宏任务执行完毕之后立即执行
setImmdiate()
执行顺序:script加载js 主线程执行 微任务 宏任务
eventloop:事件环,事件环就是js事件执行顺序。
因为js是单线程的,所以他的事件是串行,因为是单线程,所以进程中只有一条线程,线程是计算机任务的最小单位。
js的异步事件会再次开辟一条线程,称为:任务队列,是一个栈结构,栈结构的特点:栈只能从表的一端存取数据,另一端是封闭的。
任务队列分为微任务和宏任务,微任务在等主线程全部执行完毕之后会清空微任务,微任务清空完成之后会去执行宏任务
微任务:
宏任务:
执行顺序:script加载js 主线程执行 微任务 宏任务