JS函数执⾏顺序错乱问题
function A(){
var i = 0;
i = B();
C(i);
}
function B(){
setTimeout(function(){}, 1000);
return 2;
javascript说明}
function C(i){
console.log(i);
}
这⼏天开发前端发现⼀个问题,两个函数前后顺序写上之后,却没有按顺序执⾏,如上例所⽰,控制台输出的其实是0⽽不是2。这说明前端的函数运⾏其实默认是异步进⾏⽽不是同步,我们以为是先执⾏B函数结束后再执⾏,实际上B函数执⾏没有结束,C函数就会运⾏,这对于前端有很⼤的好处,不会被阻塞,可以同时多线程的加载页⾯。
解决⽅法
将C⽅法放到B⽅法中运⾏,如果是ajax⽅法的话,可以加⼊参数async:false,这样ajax函数就会变成同步⽅法,ajax执⾏时,⽅法会阻塞。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。