什么是宏任务微任务

本文介绍了JavaScript中的宏任务和微任务,包括它们的来源、执行顺序以及与同步任务和异步任务的关系。宏任务包括setTimeout、setInterval、Ajax、DOM事件等,而微任务则涉及Promise、async/await、process.nextTick等。理解宏任务和微任务的执行机制对于深入掌握JavaScript的事件循环至关重要。
摘要由CSDN通过智能技术生成

一. 什么是宏任务微任务?

1.宏任务(由浏览器、node发起) :setTimeout延时调用、setInterval定时调用 Ajax DOM事件、setImmediate(Node环境)、script(整体代码块)

2.微任务(由JS自身发起) :Promise async/await 、 promise.[ then/catch/finally ]、事件队列 process.nextTick(Node环境)

3.微任务比宏任务的执行时间要早

二. 提到宏任务微任务,前提要明白同步与异步是什么?

前端核心语言就是JS,所以对于JS的一些基本知识,是一定要了解清楚的。JS 是单线程执行的语言,也就是在一个时间段内只能做一件事。这就导致后面的任务需要等到前面的任务完成才能执行,如果前面的任务很耗时就会造成后面的任务一直等待。为了解决这个问题JS中出现了同步任务和异步任务

同步任务:

主线程上排队执行的任务只有前一个任务执行完毕,才能执行后一个任务,形成一个执行栈。

异步任务:

==异步任务:==不进入主线程,而是进入任务队列,当主线程中的任务执行完毕,就从任务队列中取出任务放进主线程中来进行执行 简言之->主先任务后

由于主线程不断重复的获得任务、执行任务、再获取再执行,所以者种机制被叫做事件循环(Event Loop)

三、以下举例说明:

一、主线程上宏任务、微任务执行顺序
console.log('---start---');//第一轮主线程
 
setTimeout(() => {
   
  console.log('setTimeout');  // 将回调代码放入个宏任务队列,第二轮宏任务执行
}, 0);
 
new Promise((resolve, reject) => {
   
  console.log(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值