event-loop 【js】

单线程

  • 单线程:同一时间只能做一件事
  • 原因:避免DOM渲染冲突
  • 解决方案:异步
  • 实现方式:event-loop

event-loop

  • 事件轮询:js实现异步的具体解决方案
  • 同步代码,直接执行
  • 异步函数先放在异步队列中
  • 待同步函数执行完毕,轮询执行异步队列的函数
// 代码
setTimeout(function() {
    console.log(1)
}, 1000)
setTimeout(function() {
    console.log(2)
})
$.ajax({
    url: 'xxx',
    success: function() {
        console.log('ajax')
    }
})
console.log(3)

/////////////////////////////////////////////////////


// 主进程
console.log(3)


// 异步队列
    // 立即被放入
    function() {
        console.log(2)
    }
    // 1000ms后被放入
    function() {
        console.log(1)
    }
    // ajax成功执行后被放入
    function() {
        console.log('ajax')
    }

你可能感兴趣的:(event-loop 【js】)