一个ajax函数与async:true

时间:2013-10-02 00:11:45

标签: javascript jquery ajax json

我如何在我的代码中只使用1个ajax函数,只有当ajax完成时才会返回数据 例如:

var Jurl = json.php, Jdata='one:AAA';    
jsonRet = json(Jurl, Jdata);    
if(jsonRet) {    
  $('body').prepend(data);    
} else {  
  Jurl = anotherJson2.php;
  Jdata='one:BBB';   
  jsonRet2 = json(Jurl,Jdata);  
  if(jsonRet2) {  
...  
  }  
}  
json(Jurl, Jdata) {  
  $.getJSON(Jurl, {Jdata} , function(data) {  
    if(data ==='finish') {
      return false;  
    } else {  
      return data;
    }
}

但是,我无法使用此代码,我必须使用jsonRet2创建另一个(一个)函数。所以代码不会优化......我想要最少的代码。

1 个答案:

答案 0 :(得分:0)

你有语法错误,就是这样。

if(data['end']===true) { ... }

修改

您还需要使用承诺从异步调用中返回值,请参阅以下示例:

$.getJSON(Jurl, {Jdata} , function(data) {
    var dfd = $.Deferred();

    if(data['end']==='true') {
        dfd.reject(false);  
    } else {  
        dfd.resolve(data);
    }

    return dfd.promise();
});