您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

JavaScript

51自学网 2022-02-21 13:35:15
  javascript

前言:

js是一门单线程语言,所以它本身是不可能异步的,但是js的宿主环境(比如浏览器、node)是多线程,宿主环境通过某种方式(事件驱动)使得js具备了异步的属性。而在js中,我们一般将所有的任务都分成两类,一种是同步任务,另外一种是异步任务。而在异步任务中,又有着更加细致的分类,那就是微任务和宏任务

1.概念

1.1宏任务

宏任务 ---- setTimeoutsetIntervalDOM事件、AJAX请求

浏览器为了能够使得JS内部task与DOM任务能够有序的执行,会在一个task执行结束后,在下一个 task 执行开始前,对页面进行重新渲染 (task->渲染->task->…)

1.2微任务

微任务 ---- Promiseasync/await

微任务通常来说就是需要在当前 同步任务 执行结束后立即执行的任务,比如对一系列动作做出反馈,或者是需要异步的执行任务而又不需要分配一个新的任务,这样便可以减小一点性能的开销。

2.执行顺序

先来看一段代码,在来探讨执行顺序:

   console.log(1)    setTimeout(() => {      console.log(2)    })    Promise.resolve().then(() => {      console.log(3)    })    console.log(4)

上面段代码打印的结果为1 4 3 2 。从上面代码,可以得出他们的执行顺序是:


下载地址:
JavaScript中的异步能省掉await吗?
vue 按钮 权限控制介绍

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。