js之eventLoop,同步与异步,宏任务与微任务

  • js是一门单线程的语言
  • 同步任务放到执行栈中依次执行
  • 异步任务放到消息队列中
  • 等同步任务执行完后,把异步任务的回调push到执行栈中
  • 宏任务是类似于setTimeout之类的
  • 微任务是类似于promise,nextTick之类的
  • 先执行微任务,再执行宏任务
  • 总的来说,就是先执行同步任务,在执行微任务,最后执行宏任务

例:

        console.log(1)
        new Promise((resolve, reject) => {
            console.log(3)
            resolve()
        }).then(() => {
            console.log(4)
        }).then(() => {
            console.log(5)
        })

        setTimeout(() => {
            console.log(6)
        }, 0)

        console.log(2)

输出结果 132456

原文地址:https://www.cnblogs.com/zoo-x/p/14498737.html