promise关于宏任务和微任务
https://blog.****.net/RedaTao/article/details/81504532
<script>
// 1主线上的同步任务先执行,然后再执行微任务
new Promise(function(resolve){
resolve()
console.log('promise'); //同步任务 //(promise类似老板)
}).then(function(value){
console.log("成功") //then的回调函数结果由promise执行结果决定的。//(等到老板通知后你才能处理业务)
})
console.log('后盾人') //同步任务
// 结果:promise 后盾人 成功
// 2主线上的同步任务先执行,然后再执行微任务,最后是宏任务
setTimeout(function(){
console.log("setTimeout") //宏任务
},0)
new Promise(function(resolve){
resolve();
console.log("promise"); //同步任务
}).then(function(value){
console.log("成功"); //微任务
})
console.log("后端人"); //同步任务
// 结果:promise 后盾人 成功 setTimeout
// 2(特殊情况): 一般都是微任务先执行,然后再执行宏任务,但是在promise里面的宏任务函数,必须先执行完,才能往下执行
let promise=new Promise(function(resove){
setTimeout(function(){
console.log("setTimeout"); //宏任务
},0);
console.log("promise"); //同步任务
}).then(function(value){ //微任务
// then回调函数是微任务执行由promise执行结果决定的,
// 所以必须等promise执行完,才能开始,即使在定时器宏任务里面,也要等宏任务加载完毕。
console.log("成功");
})
console.log("houdunren.com"); //同步任务
//结果:promise houdunren.com setTiout 成功