2020
10-10
10-10
浅谈javascript事件环微任务和宏任务队列原理
JS事件环JS程序的运行是离不开事件环机制的,这个机制保证在发生某些事情的时候我们有机会执行一个我们事先预定好的函数,事情发生的时候JS会将相应的函数入栈执行然后出栈,但是关于事件环我们还有一些未知的东西,例如,setTimeout我们习惯称他为定时器,但是可能很多人没有意识到,这个东西和我们常用的一些事件没什么不同,只不过我们通常所说的事件大多需要用户触发,而setTimeout不用用户自己触发,而是指定时间之后...
继续阅读 >
首先看一段代码:打印顺序是什么?正确答案:scriptstart,scriptend,promise1,promise2,setTimeout其中涉及到事件循环(eventloop),宏任务(macrotask),微任务(microtask)一、事件循环EventLoop程序中设置两个线程:一个负责程序本身的运行,称为"主线程";另一个负责主线程与其他进程(主要是各种I/O操作)的通信,被称为"EventLoop线程"(可以译为"消息线程")。所有任务可以分成两种,一种是同步任务(synchronou...