dedlfix: Block Scope Problem

Beitrag lesen

Tach!

leider (obwohl ich die daten auf meiner seite sehe wenn ich unsichtbar weg mache) hab ich das gleiche problem wie oben beschrieben.

Weil du anscheinend immer noch nicht das Prinzip der Asynchronität verinnerlicht hast. Wenn die Funktion $.getJSON() aufgerufen wird, kommt sie sofort zum Aufrufer zurück. Alles was nach ihr steht, kann nicht auf das Ergebnis zugreifen, weil das noch nicht da ist. Wenn das Ergebnis bereitsteht, wird die an done() übergebene Funktion aufgerufen. Nur in ihr kann auf das Ergebnis zugegriffen werden, und außerdem in allem, was von ihr aus aufgerufen wird oder was nach ihrem Aufruf (zeitlich, nicht code-zeilen-örtlich) stattfindet.

kennt ihr ne beschreibung wie man das mit diesen response löst? ich hab nur irgend welche http sachen dazu gefunden....

Mit $.getJSON().done().fail() verwendest du bereits das Promise-Muster. Wenn du dich mit dem ergebnisverarbeitenden Code auf die done()-Methode beschränken kannst, ist das alles was du tun musst: deinen Code dareinschreiben.

Soll hingegen nach dem Aufruf von getData() (und damit außerhalb davon) auf das Ergebnis zugegriffen werden, musst du selbst ein Promise erstellen. Dazu musst du das Promise-Muster generell und nicht nur bezogen auf dein eigentliches Problem kennenlernen.

dedlfix.