Hi,
function bla(){
var xy = getIt();
console.log(xy);
}function getIt(){
$.ajax({
...
}).done(function(data){
return data;
});
}
selbst wenn du hier async auf false setzt, liefert getIt nicht data zurück (sondern nur die anonyme Funktion, die du als Event-Handler für das Ereignis "done" übergibst. Eine Möglichkeit wäre (ungetestet!)
~~~javascript
function getIt() {
var ret;
$.ajax({
// …
async: false
}).done(function(data){
ret = data;
});
return ret;
}
Ich würde dir aber empfehlen, eher beim asynchronen Zeugs zu bleiben und dich mit dessen Konzepten auseinanderzusetzen:
function bla(){
var myDoneHandler = function(xy) {
console.log(xy);
};
getIt(myDoneHandler);
}
function getIt(handler) {
$.ajax({
// …
}).done(handler);
}
oder auch eine anonyme Funktion, die du done gibst, welche die Daten aufbereitet und dann deinen Done-Handler (den von bla()) entsprechend aufbereitet.
Bis die Tage,
Matti