JavaScript是单线程的,event loop是他的执行模型。
JavaScript会根据这个顺序进行任务调度,调度过程如下:
如果有程序的话,首先执行的是程序,如果没有程序就会调度微任务,如果没有微任务就去调度宏任务。
微任务包括如下
promise、MutationObserver....
宏任务如下
setTimeout、setInterval
在宏任务的队列中,一次只能取出一个任务,去进行执行,宏任务执行完成以后,才能去执行微任务中的队列任务,微任务中的队列任务会一次取出来执行,直到微任务队列清空为止。
以此循环这个步骤
这就是JavaScript中的event loop的机制。