3

Hi,小伙伴们,今天来和大家谈一谈有关javascript 中回调的问题,首先回调函数分为两种
1、同步回调函数(普通的回调函数)
2、异步回调函数

其中同步回调函数是要等到回调函数都执行完成后才能进行接下来的操作,也就是说是阻塞式运行。

话不多说,直接上栗子


function waitFive(callback){
      var currentDate = new Date();
      var pus = 0;
      while(pus<5000){
        var date = new Date();
        pus = date - currentDate;
      }
      callback("执行完成");
    }
    waitFive(function(msg){console.log(msg);});
    console.log("进行第二步操作;");
    
    **执行结果为:**
 
       执行完成
       进行第二步操作
   
  

因为是同步回调函数,所以是要先等waitFive函数执行完成后,才能执行

   console.log("进行第二步操作;");

而异步回调函数不需要等到回调函数都执行完成后才能进行接下来的操作,也就是说是非阻塞式运行。

话不多说,同样直接上栗子

function waitFive(callback){
      setTimeout(function(callback){
      callback("执行完成");
      
      },5000);
    }
    waitFive(function(msg){console.log(msg);});
    console.log("进行第二步操作;");
    
    **执行结果为:**
       进行第二步操作
       执行完成

因为是异步回调函数,所以是不需要先等waitFive函数执行完成后,才能执行

   console.log("进行第二步操作;");

David_Liu
9 声望3 粉丝

专注于前端开发,node webpack 等,偶尔也写写java,玩玩mySQL,Linux等