宏任务和微任务的理解

JS简介

大家都是到js是单线程的,同一时间只能做一件事情,把其他的事情放在队列里面,完成主线程的任务之后在从队列里面获取任务

settimeOut(()=>{
     
	console.log("定时器")
}100)
console.log("主线程")
输出: 
//主线程
//定时器

宏任务

script、setTimeout、setInterval、setImmediate、I/O、UIrendering

微任务

promise、Object.observe、MutationObserve

任务的优先级

prosess.nextTick>promise.then>setTimeout>setImmediate

微任务相当于一个跟屁虫,一直跟在当前宏任务的后面,代码执行到一个微任务就跟上,一个接着一个

setTimeOut(()=>{
     
	console.log("setTimeOut")
},0)
new Promise(function(resolve){
     
	console.log("start")
	resolve()
	console.log("promise1")})
	.then(function(){
     
	console.log(promise2)})
	console.log("end")
	输出结果
	start
	promise1
	end
	promise2
	setTimeOut

举个栗子
宏任务和微任务的理解_第1张图片

你可能感兴趣的:(宏任务和微任务,javascript)