molily: JQUERY $.ajax

Beitrag lesen

Hallo,

function bla(){

var xy = getIt();
  console.log(xy);
}

Das geht nicht und den Request auf synchron umstellen ist i.d.R. keine gute Idee.

Arbeite mit einer Callback-Funktion, die beim Eintrudeln der Serverantwort ausgeführt wird. Oder besser noch, gib in getIt das [link:http://api.jquery.com/jQuery.ajax/#jqXHR@title=jqXHR-Objekt] zurück, welches $.ajax() erzeugt:

[code lang=javascript]function getIt() {
  return $.ajax({
     ...
  });
}

  
Dann kannst du Erfolgs- und Fehlerhandler dort registrieren, wo du die Antwort verarbeiten willst:  
  
~~~javascript
function bla() {  
  getIt.done(function (data) {  
    ...  
  }).fail(function () {  
    ...  
  });  
}

Dieses jqXHR-Objekt ist ein Promise. Das ist ein Programmier-Pattern, das sich für viele asynchrone Einsatzzwecke eignet.

Mathias