首页 > 代码库 > Js同步异步机制

Js同步异步机制

  • JavaScript引擎是单线程的,强制所有的异步事件排队等待执行
  • setTimeout 和 setInterval 在执行异步代码的时候有着根本的不同
  • 如果一个计时器被阻塞而不能立即执行,它将延迟执行直到下一次可能执行的时间点才被执行(比期望的时间间隔要长些)
  • 如果setInterval回调函数的执行时间将足够长(比指定的时间间隔长),它们将连续执行并且彼此之间没有时间间隔
  • animate因为内部利用的实际是setInterval 
  • $(function(){
    for(var i=0;i<10;i++){

    $("div").animate({left:‘100px‘,top:‘0px‘},1000,‘swing‘,function({

  •         $("div").animate({left:‘100px‘,top:‘0px‘},1000,‘swing‘);
  •         console.log(2) 
  • }));

    console.log(1)
    }

    })

  • 会先打印10次 1  然后执行animate内容一次,打印10次2,最后执行剩下的9次animate
  • 若有嵌套层级关系,则根据依次排队顺序读取运行

Js同步异步机制