以chrome为例chrome
setTimeout(function(){ console.log('setTimeout')},0)
new Promise(function(resolve){
console.log('promise')
resolve()
}).then(function(){
console.log('then')
})复制代码
浏览器eventloop机制promise
js执行为单线程,所以分为 同步和异步浏览器
先执行同步任务,即 setTimeout , new Promise, console.log('promise')bash
在异步时分为 宏任务 和 微任务,异步
setTimeout,setInterval等为宏任务,Promise为微任务。两个任务被挂载到不一样的task queue中。oop
浏览器先执行微任务的queue,即console.log(‘then’)而后在执行 宏任务 console.log(‘setTimeoout’)ui