Js同步异步机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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同步异步机制的主要内容,如果未能解决你的问题,请参考以下文章

同步和异步&JS执行机制

js中的异步与同步,解决由异步引起的问题

JS基础--EventLoop

js的线程和同步异步以及console.log机制

对JavaScript中异步同步机制以及线程深入底层了解

js运行机制 (包括宏任务微任务,同步异步,事件循环机制Event Loop)面试常问