-1

我如何在我的代码中只使用 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 创建另一个(另一个)函数。所以代码不会被优化......我想要尽可能少的代码。

4

1 回答 1

0

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

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

编辑

您还需要使用 Promise 从异步调用中返回值,请参见下面的示例:

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

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

    return dfd.promise();
});
于 2013-10-02T00:13:57.847 回答