js同步异步、事件循环(宏观任务、微观任务)

我们都知道JavaScript 是单线程,同一个时间只能做一件事。所有任务需要排队,当前队列的任务也分为两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous),在所有同步任务执行完之前,任何的异步任务是不会执行的。

事件=>同步=>异步

其中异步任务中又分为 宏任务(macrotasks)、微任务(microtasks),执行到异步任务时先执行宏任务,把宏任务放入Event Queue,然后在执行微任务,在将微任务放入Event Queue (这里要注意一点微任务和宏任务Event Queue是两个不同的空间)   等到回调的时候是先微任务然后在宏任务

执行:宏任务=>微任务  callback : 微任务=>宏任务

宏任务包括:整体代码 script,setTimeout,setInterval

微任务包括:Promise,process.nextTick

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。