整理下之前做的有点疑惑的js基础题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦
eventLoop
下列代码的执行顺序?
const first = ()=> (new Promise((resolve,reject)=>{
console.log(3)
let p = new Promise((resolve,reject)=>{
console.log(7)
setTimeout(()=>{
console.log(5)
resolve(6)
},0)
resolve(1)
})
resolve(2)
p.then((arg)=>{
console.log(arg)
})
}))
first().then((arg)=>{
console.log(arg)
})
console.log(4)
这题的主要问题是
怎么可以有序把这些输出区分开?
eventLoop分为同步任务和异步任务,异步任务分为微任务和宏任务。
同步任务:3 7 4
微任务:1 2
宏任务:5
所以打印结果为 3 7 4 1 2 5