JS异步--进阶

 题目

    · 描述event loop(事件循环 / 事件轮询)的机制,可画图

    · 什么是宏任务和微任务,两者有什么区别?

    · Promise有哪三种状态?如何变化?

 知识点

         · event loop(事件循环 / 事件轮询 )

                1. JS是单线程运行的

                2.异步要基于回调来实现

                3.event loop就是异步回调的实现原理

        · JS如何执行

                1.从前到后,一行一行执行

                2.如果某一行执行报错,则停止下面代码的执行

                3.先把同步代码执行完,再执行异步

2异步:

异步 async 是相对于同步 async 而言的,同步就是一件事一件事的执行。只有前一个任务执行完毕,才能执行后一个任务。

js中使用:

当JS解析执行时,会被引擎分为两类任务,同步任务(synchronous) 和 异步任务(asynchronous)。

对于同步任务来说,会被推到执行栈按顺序去执行这些任务。

对于异步任务来说,当其可以被执行时,会被放到一个 任务队列 里等待JS引擎去执行。

当执行栈中的所有同步任务完成后,JS引擎才会去任务队列里查看是否有任务存在,并将任务放到执行栈中去执行,执行完了又会去任务队列里查看是否有已经可以执行的任务。这种循环检查的机制,就叫做事件循环。

同步任务:

指的是在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。

异步任务:

指的是不进入主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

**1. 同步和异步任务在不同的执行"场所",同步的进入主线程,异步的进入Event Table执行并注册函数。

JavaScript 执行机制:

主线程任务——>微任务——>宏任务

如果宏任务里还有微任就继续执行宏任务里的微任务,如果宏任务中的微任务中还有宏任务就在依次进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容