Ich habe eine JavaScript-Funktion, die nach einigen Ajax-Daten fragt und ein JSON-Objekt zurückbekommt. Dann sollte es das Objekt zurückgeben.Jquery: warte auf einen Rückruf vor der Rückgabe
Das Problem ist, dass ich nicht weiß, wie man die Funktion Rückkehr vom Ajax Callback. Natürlich
myFunction: function() {
$.get(myUrl, function(data) {
return data;
});
}
funktioniert nicht, weil die innere Funktion anstelle der äußeren zurückkehrt.
Auf der anderen Seite, die Ausführung von, was ich gerade innerhalb des Rückrufs brauche, wird meine MVC Unterteilung brechen: Dieser Code ist in einem Modell, und ich möchte das Ergebnisobjekt in der Steuerung verwenden.
Eine vorübergehende Lösung ist
myFunction: function() {
var result = $.ajax({
url: myUrl,
async: true,
dataType: 'text'
}).responseText;
return eval(result);
}
die den Nachteil der Blockierung des Browser hat, während für die Antwort zu warten (und eval, die ich würde lieber vermeiden).
Gibt es noch andere Lösungen?
Dies wurde viele, viele Male gefragt ... Siehe zum Beispiel: http://stackoverflow.com/questions/31129/how-can-i-return-a-variable-from-a-getjson-funktion – Shog9