Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 18. 12. 2015, 19:02:51
Zdravím,
potřebuji, aby mi funkce vracela obsah depozitu dotazem přes Ajax: function GetDepozit(IdDepozit){ var ContentDepozit ; $.get("Ajax.php" , {Depozit : IdDepozit} , function(Result){ ContentDepozit = Result ; }) ; return ContentDepozit ; } Tady jsem našel řešení podobného problému, ale nevím, jak ho aplikovat na tento případ. (Funkce v parametru jiné funkce.) Jak na to? |
||
Dan Charousek Profil |
#2 · Zasláno: 18. 12. 2015, 19:20:00
nethor:
Problém je v tom, že ajax je asynchronní. Vytvoří se HTTP požadavek (řádek 3), ale nečeká se na něj a rovnou se provádí řádek 6, jenže v tu chvíli, kdy vracíš proměnnou ContentDepozit v ní nic není. Funkci, která má zpracovat data z AJAXU musít volat uvnitř té anonymní funkce (řádek 4). |
||
yFang Profil |
#3 · Zasláno: 18. 12. 2015, 19:52:38
nethor:
Můžeš si z té funkce vracet promise a pak ten callback na to navěsit, kde potřebuješ. function GetDepozit(IdDepozit) { return $.get("Ajax.php" , {Depozit : IdDepozit}); } // --- GetDepozit(1).done(function(Result) { console.log(Result); }); |
||
nethor Profil |
#4 · Zasláno: 18. 12. 2015, 20:47:16
Dan Charousek:
Díky za nakopnutí. Že může být problém v asynchonosti, mi nedošlo. .. a vysvětluje to dílčí úspěchy, když jsem script trasoval přes alert(). yFang: Skvěle, tenhle postup v podstatě můj problém řeší. Děkuju. |
||
Časová prodleva: 7 let
|
0