-1

コードで ajax 関数を 1 つだけ使用して、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つ)関数を作成する必要があります. したがって、コードは最適化されません...できるだけ少ないコードが必要です。

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 に答える