Întârzierile și procesele asincrone reprezintă adesea o provocare în dezvoltarea software-ului, mai ales când vine vorba de gestionarea callback-urilor. Aici intervin Promises – un concept puternic care te ajută să păstrezi claritatea codului tău și să reduci complexitatea operațiunilor asincrone.
În acest tutorial, vei explora lumea Promises. Vei vedea cum funcționează și cum lucrul cu Fetch-API în JavaScript pentru a efectua cereri HTTP și a procesa răspunsurile într-un mod semnificativ. Hai să explorăm împreună avantajele și conceptele de bază ale Promises.
Concluzii cheie
- Promises sunt folosite pentru a gestiona procesele asincrone și a oferi rezultatele într-o structură clară.
- Fetch-API este o metodă modernă de a realiza cereri HTTP care suportă nativ Promises.
- Cu metoda then() și catch(), poți lucra cu rezultatele și erorile Promises fără a cădea într-o capcană de callback-uri.
Ghid Pas cu Pas
Pasul 1: Introducere în Fetch-API
Fetch-API oferă o modalitate simplă de a efectua cereri HTTP. Este disponibilă în aproape toate browserele moderne și folosește Promises pentru a returna răspunsul la cerere. Începi prin apelarea funcției fetch().
Iată un exemplu de cum poți face o cerere GET simplă către un server pentru a obține o dată HTML. Trebuie să specifici pur și simplu URL-ul ca parametru.

Pasul 2: Procesarea Răspunsului
După ce procesul Fetch este complet, primești un răspuns. Acest răspuns este, de asemenea, un Promise, pe care poți să-l procesezi cu metoda then(). În acest pas, vei arăta cum să obții primul status și header-ele răspunsului.
Trebuie menționat că obiectele Response nu conțin direct datele răspunsului, ci doar informații de bază, cum ar fi statusul și header-ele.
Pasul 3: Accesarea Corpului Răspunsului
Acum vine partea interesantă – citirea conținutului corpului. Poți folosi metoda response.text() pentru a obține textul răspunsului HTTP. Această metodă îți returnează din nou un Promise, pe care poți să-l soliciti și cu then().
În acest pas, explicăm că citirea textului este un proces asincron, pentru care ai nevoie din nou de conceptul Promises.
Pasul 4: Evitarea Iadului Callback-urilor
Dacă vrei să procesezi mai multe operațiuni asincrone una după alta (de exemplu, Fetch și apoi citirea textului), ai putut observa că nu trebuie să te înfășori în straturi mai adânci pentru a procesa rezultatele. În schimb, poți lucra pe aceeași nivel, returnând Promises în fiecare etapă.
Asta înseamnă că poți apela metoda then() și în interiorul then() a predecesorei Promises, păstrând astfel codul tău mai clar.
Pasul 5: Gestionarea Erorilor cu Catch
Erorile sunt o parte inevitabilă a dezvoltării software-ului. Cu ajutorul metodei catch() din Promises, poți reacționa la erori. De exemplu, dacă te afli într-o situație în care cererea eșuează sau întâmpini o eroare de rețea, metoda catch() va fi apelată.
Aici arătăm cum poți gestiona elegant erorile și le poți face ușor de înțeles pentru a identifica în timp util problemele posibile.

Pasul 6: Crearea Propriilor Promises
În acest pas, înveți cum să creezi propriile Promises. Pentru aceasta, folosești metoda new Promise(), în care transmiți o funcție care determină logica asincronă. Folosim funcția setTimeout pentru a simula o întârziere și pentru a arăta returnarea unei valori.
Pasul 7: Utilizarea Resolve și Reject
În interiorul Promises-ului creat, poți apela funcțiile resolve și reject pentru a indica dacă Promise a fost finalizată cu succes sau a eșuat. Acest lucru îți oferă controlul pentru a gestiona în mod flexibil diferitele fluxuri ale aplicației tale.
Pasul 8: Chaining-ul Promises
În cele din urmă, poți înțelege că Promises au capacitatea de a forma lanțuri. Asta înseamnă că poți apela metodele then() și catch() una după alta pentru a face gestionarea operațiunilor asincrone și mai simplă și mai ușor de citit.
Păstrând o întreagă serie de Promises, menții claritatea structurii codului tău, indiferent de cât de complexă este logica.
Rezumat - Introducere în Promises JavaScript
Este evident că Promises sunt un instrument esențial în dezvoltarea modernă a JavaScript-ului. Acestea facilitează gestionarea curată și lizibilă a operațiunilor asincrone și simplifică lucrul cu cererile HTTP, fără a fi copleșit de funcții callback.
Întrebări Frecvente
Ce este un Promise?Un Promise este un obiect care reprezintă eventualitatea unui proces asincron și returnează rezultatul său, odată ce acesta este finalizat.
La ce servește Fetch-API?Fetch-API este folosit pentru a efectua cereri HTTP simplu și eficient, folosind Promises.
Cum gestionez erorile în Promises?Erorile sunt gestionate cu metoda catch(), care poate urma oricărui Promise.
Pot crea propriile Promises?Da, poți crea propriile Promises cu metoda new Promise() și folosi funcțiile resolve și reject.
Sunt Promises sincrone sau asincrone?Promises sunt asincrone și permit ca JavaScript să continue să ruleze în timp ce așteaptă rezultatul unui proces asincron.