讲解一下同步任务、异步任务、宏任务、微任务,以及执行顺序
时间: 2023-10-06 22:05:43 浏览: 87
同步,异步,及普通处理
好的,关于任务的执行顺序,首先我们需要了解两个概念,同步任务和异步任务。同步任务是指当代码运行时,需要等待当前这段代码执行完毕才能继续向下执行后面的代码,而异步任务是指代码不需要等待当前这段代码执行完成,可以继续往下执行后面的代码。
接下来讲一下宏任务和微任务。宏任务可以理解为用户主动触发的事件,比如鼠标点击、键盘输入或者定时器等等。而微任务则是在当前执行栈中的任务执行完毕后立即执行的任务,比如Promise 和 MutationObserver。
在任务执行的过程中,每一个宏任务都会有一个相应的微任务队列,当一个宏任务执行完毕后,就会去查看它的微任务队列是否为空,如果不为空,则依次执行其中的微任务,直到队列为空后再执行下一个宏任务,这就是任务的执行顺序。
所以,总结一下就是,先执行当前执行栈中的同步任务,然后执行当前执行栈中的所有微任务,接着执行新的宏任务,并且执行新的宏任务时,又会重新执行前面的流程,直到所有的任务都执行完成。
阅读全文