运行机制,宏任务 与 微任务

2020-12-23  本文已影响0人  jasmine_6aa1

运行机制:

运行机制

1,JS 的本质是单线程执行

单线程就意味着所有任务需要排队,前一个任务结束,才会执行下一个任务。
宿主:JS运行的环境,一般为浏览器或者Node。即为宿主;

2,执行的过程
3,事件队列

同步任务:非阻塞性的任务采取同步的方式
异步任务:阻塞性的任务都会采用异步来执行

image.png

循环执行的任务:

宏任务 与 微任务

1,定义

宏任务:宏任务是由宿主发起的,会再次执行事件队列,执行同步事件
微任务:微任务由JavaScript自身发起,不会再次执行该事件队列,执行异步事件

2,常见的任务
3,两者关系
4,执行过程

案例

setTimeout(function() {
  console.log('1')
}, 0)

console.log('2')

new Promise(resolve => {
  console.log('3')
  resolve()
}).then(function() {
    console.log('4')
  })

console.log('5')

`输出顺序是:2,5,3,4,1`

注:promise 是主线程;promise.then/catch/finally 微任务

new Promise(function(resolve,reject){
    console.log(123)  // 此时 promise 还在主线程上
    resolve()
}).then(function(){ // 此时 .then 是微任务
    console.log(4567)
})
上一篇 下一篇

猜你喜欢

热点阅读