Functiile sunt apelate inainte de a se termina GET-requestul care aduce datele

Trebuie sa fac un GET request pe un api care imi da un obiect pe care il parsez si apoi trebuie sa populez niste elemente de HTML cu proprietatile obiectului.
Intentia mea este ca raspunsul GET requestului sa il pun intrun obiect global.

Problema mea este ca ia ceva timp pana se face requestul, iar la momentul cand eu vreau sa citesc din obiectul global, valorile nu sunt acolo (imi arata undefined, dar daca ii dau un setTimeout de 2 secunde sa zicem le vede) pentru ca nu s-a terminat requestul.

Intrebarea mea este cum as putea sa fac in asa fel incat sa intarzii cumva call-ul catre functiile respective. Ca idee am sa scriu codul intr-o functie setUp() sa zicem pe care sa o bag intr-un bloc .then().

Exista vreo metoda prin care sa nu trebuiasca sa bag functiile intr-o alta functie setUp() care sa fie apelata cand se termina de facut requestul care aduce datele?

Sau sa inteleg ca ar trebui sa fac async functia care face GET-ul si sa pun dupa aia await la toate functiile care vreau sa astepte sa se termine requestul? Am inteles eu bine?Oricum as fi vrut sa evit sa lucrez cu async await dar daca asta e solutia o sa fac asa.

Dacă GET-ul este ajax din js, trebuie să apelezi codul din interiorul callback-ului.

Poti incepe sa ne spui cu ce limbaj sau framework lucrezi

Lucrez cu jQuery javascript :smiley: :smiley:

$.get("/link-ul-tau", function(result)
{
    // aici se executa codul ala intarziat
});
2 Likes

Sau daca ai de facut request-uri multiple, folosesti promisiuni asa: https://api.jquery.com/jquery.when/.

1 Like