2011-01-10 6 views
3

Ich versuche, den Rückgabewert einer Funktion basierend auf dem Ergebnis einer JQuery $ .get Anfrage zu bestimmen:

function checkResults(value) { 
     $.get("checkDuplicates.php", { 
      value: value 
     }, function(data) { 
      if(data == "0") { 
      //I want the "checkResults" function to return true if this is true 
      } else { 
      //I want the "checkResults" function to return false otherwise 
      } 
     }); 
    } 

Gibt es eine einfache Möglichkeit, dies zu tun?

Antwort

6

Sie können es nicht so machen. .get() wie jede andere Ajax-Methode wird asynchron ausgeführt (außer Sie legen explizit fest, dass sie synchron ausgeführt wird, was nicht sehr empfehlenswert ist). Das Beste, was Sie tun können, ist wahrscheinlich ein Callback.

function checkResults(value, callback) { 
    $.get("checkDuplicates.php", { 
     value: value 
    }, function(data) { 
     if(data == "0") { 
     if(typeof callback === 'function') 
      callback.apply(this, [data]); 
     } else { 
     //I want the "checkResults" function to return false otherwise 
     } 
    } 
} 

checkResults(55, function(data) { 
    // do something 
}); 
3

Nein, Sie müssen einen Rückruf bereitstellen, der ausgeführt wird, sobald die Anfrage abgeschlossen ist. Sie können den Rückgabewert an den Rückruf übergeben. Der Callback muss auf das Ergebnis reagieren.

Verwandte Themen