javascript基本总结(二)——异步编程状况

异步:划定要做一件事,不是立马实行这件事,须要等肯定的时候,如许的话,我们不会等着它实行,而是继承实行下面的操纵,只要将下面的事变处置惩罚完了,才会返转头处置惩罚之前的事变;假如下面的事变并没有处置惩罚完成,不论之前的事变有无到时候,都脚踏实地的给我等着;

1、定时器都是异步编程

var n = 0;
setTimeout(function(){
    n++;
    console.log(n);//2->1
},1000)

console.log(n);//1->0
var n = 0;
setTimeout(function(){
    n++;
    console.log(n);//2->1
},0)

console.log(n);//1->0

一切的定时器都邑放在使命行列池中,时候短的放在前面;


var n = 0;
setTimeout(function(){
    n++;
    console.log('1:'+n);//2:2
},2000)

setTimeout(function(){
    n++;
    console.log('2:'+n);//2:1
},1000)

console.log(n);//1->0

假如定时器时候一样会从上向下实行;

var n =0;
setTimeout(function(){
    n++;
    console.log('1:'+n);
},2000)

var timer= setInterval(function(){
    n++;
    console.log('2:'+n);
    if(n==5){
        clearInterval(timer);
    }
},1000)
//实行递次
//2:1
//1:2
//2:3
//2:4
//2:5

2、一切的事宜绑定都是异步编程

for 轮回实行完成后才会走绑定事宜

for(var i = 0;i < oLis[i].length;i++) {
    oLis[i].onclick = funciton() {
        changeEvent(i);//i永远是末了一个
    }
    
}

3、ajax异步读取数据时

4、经由过程回调函数完成异步

经由过程ajax和setTimeout辅佐完成

//jquery中的$.get要领等...
$.get('url', function(p) {
 //some
});
//借助于setTimeout、setInterval
function f1(callback){ 
   setTimeout(function () {       
  // f1的使命代码      
  callback(); // step3     
}, 1000);   
}
f1();//setep1
console.log('x');//step2

假如该挪用须要消耗许多时候,实行行列就会因守候而壅塞,采用回调函数,实行行列继承进行,比及挪用完毕,经由过程挪用回调函数的体式格局,关照实行行列,处置惩罚实行效果.

    原文作者:跑码
    原文地址: https://segmentfault.com/a/1190000009196784
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞