在开始事件循环机制的学习前,我们需要理解几点
- Javascript 是一门单线程语言,是按照语句出现的顺序执行的
- 所谓异步,其实都是用同步的方法去模拟的
- Event Loop是javascript的执行机制
Javascript事件循环
我们都知道Javascript 是一门单线程语言,关于任务的执行,我们在上一个任务执行完毕后才会进行下一个任务的执行,以此类推。如果按照这种情况,假如我们想要浏览一个网页,但是这个网页包含很多加载很慢,高清的图片,难道我们要卡到这些资源加载完毕?所以程序员将任务分为以下两种:
-
同步任务 -
异步任务
我们可以根据下图进行理解:
除了广义的同步任务和异步任务,我们对任务有更精细的定义:
-
macro-task 宏任务 包含整体script,setTimeout,setInterval -
micro-task 微任务 Promise,process.nextTick