(九) -前端-异步编程

9.JS的异步编程

因为js是单线程的。浏览器遇到setTimeout 和 setInterval会先执行完当前的代码块,在此之前会把定时器推入浏览器的待执行时间队列里面,等到浏览器执行完当前代码之后会看下事件队列里有没有任务,有的话才执行定时器里的代码

常用的方式:setTimeout setIntervel ajax Promise asyc/await

宏任务(marcotask)微任务(microtask) 的执行顺序

先执行微任务,然后在执行宏任务;

JS中的宏任务:setTimeout setIntervel ajax

JS中的微任务:Promise.then Promise.catch await(可以理解成Promise.then)

JS的执行顺序是先同步 再异步;同步执行完成之前 异步不会执行

EventLoop 事件循环

EventQueue 事件队列

![img](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg)![img](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg)

![image.png](file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png)

posted @ 2020-12-23 14:32  HelloBytes  阅读(91)  评论(0编辑  收藏  举报