大家好,我是逆战班的一名学员,今天跟大家分享的是js的异步执行原理。
计算机程序执行分为同步执行和异步执行。
在计算机程序中,大部分都是同步程序,所谓的同步执行,就是正常的计算机程序执行的3大顺序流程:顺序控制语句、分支控制语句和循环控制语句。
有一些特殊的程序采用的是异步执行原理,如定时器、延时器、事件的绑定和ajax请求。
我们可以先了解一下异步执行的过程。
1,从一行代码开始执行程序。
2,同步程序正常执行。
3,如果发现是异步程序,暂时不执行,存储在异步池中,等待执行。
4,将程序中所有的同步程序执行完毕后,开启异步池,执行异步程序。
5,当设定的时间到达,就会执行对应的异步升序,先到设定时间的异步程序,先执行;如果设定的时间相同,看异步程序的顺序,来执行。
我们可以通过程序深入了解异步执行:
setInterval(function(){
console.log('我是异步执行的程序1111');
} , 2000);
setInterval(function(){
console.log('我是异步执行的程序2222');
} , 1000);
console.log('我是同步执行的程序')
这个程序执行的顺序就是先执行同步顺序:console.log(‘我是同步执行的程序’),再执行异步程序,如果异步程序时间相同,看代码先后顺序,如果时间不同,时间短的先执行。这里因为两个异步程序时间不同,所以先执行
setInterval(function(){
console.log(‘我是异步执行的程序2222’);
} , 1000);
再执行
setInterval(function(){
console.log(‘我是异步执行的程序1111’);
} , 2000);
由此我们可以看出异步执行的原理,所有的异步程序的执行,都会在同步程序执行结束之后,再来执行。异步程序的执行顺序,如果时间相同,看代码的先后顺序,如果时间不同,时间短的,先执行。最重要的一点是必须要牢记,异步程序的执行,一定是在所有同步程序执行结束之后,才会开始执行!