js基础-题目46

整理下之前做的有点疑惑的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

猜你喜欢

转载自blog.csdn.net/hr_beginner/article/details/121240789