js中同步与异步处理的方法和区别总结

  在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符。

  总结:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求。

  例如:以下例子会出现返回结果不正确的情况,因为ajax异步请求还未执行完,函数已经执行return了,

  

复制代码 代码如下:

  function fn(){

  var result = " ";

  $.ajax({

  url : 'your url',

  data:{name:value},

  cache : false,

  async : true,

  type : "POST",

  success : function (data){

  do something....

  result = ....

  }

  // 对ajax中返回的data进行处理 ,也会出错

  return result ;

  }

  1 异步请求方式:

  

复制代码 代码如下:

  $.ajax({

  url : 'your url',

  data:{name:value},

  cache : false,

  async : true,

  type : "POST",

  dataType : 'json/xml/html',

  success : function (result){

  do something....

  }

  });

  2 同步请求方式

  

复制代码 代码如下:

  $.ajax({

  url : 'your url',

  data:{name:value},

  cache : false,

  async : false,

  type : "POST",

  dataType : 'json/xml/html',

  success : function (result){

  do something....

  }

  });