事件循环机制
介绍:js 是单线程执行的,js中的任务按顺序一个一个的执行,但是一个任务耗时太长; 那么后面的任务就需要等待,为了解决这种情况,将任务分为了同步任务和异步任务; 而异步任务又可以分为微任务和宏任务。
console.log('aaa')
new Promise((resolve)=>{
console.log("bbb")
resolve()
//注意这里,与下道题的区别
new Promise((r)=>{
console.log("99999")
r()
}).then(res=>{
console.log("111111")
})
}).then(res=>{
console.log("ccc")
})
console.log("ddd")
输出的结果是;
稍微修改一下这道题:
console.log('aaa')
new Promise((resolve)=>{
console.log("bbb")
resolve()
//注意这里
setTimeout(()=>{
new Promise((r)=>{
console.log("99999")
r()
}).then(res=>{
console.log("111111")
})
},1)
}).then(res=>{
console.log("ccc")
})
console.log("ddd")
输出的结果:
第二道题中加了个定时器,把里面的promise放进了宏任务当中,所以先打印了ccc,再打印了,99999到111111.
补充:事件循环的具体流程请查看相关文档