Junior
Ce metode de lucru cu codul asincron cunoașteți?
sobes.tech AI
Răspuns de la AI
- Funcții callback: Transmiterea unei funcții ca argument către o altă funcție, care va fi apelată după finalizarea unei operații asincrone. Pot duce la "callback hell".
- Promisiuni (Promises): Obiecte care reprezintă finalizarea (sau eșecul) unei operații asincrone și valoarea sa rezultată. Oferă o gestionare mai structurată a asincronicității.
// Exemplu de utilizare a promisiunii fetch('/api/data') .then(response => response.json()) // Procesarea răspunsului de succes .then(data => console.log(data)) // Procesarea datelor primite .catch(error => console.error('Eroare la preluarea datelor:', error)); // Tratarea erorii - Async/await: Zahăr sintactic peste promisiuni, care permite scrierea codului asincron într-un stil mai sincron, făcându-l mai ușor de citit și de depanat.
// Exemplu de utilizare async/await async function fetchData() { try { const response = await fetch('/api/data'); // Așteptarea promisiunii if (!response.ok) { throw new Error(`Eroare HTTP! status: ${response.status}`); } const data = await response.json(); // Așteptarea promisiunii console.log(data); } catch (error) { console.error('Eroare la preluarea datelor:', error); // Tratarea erorii } } fetchData(); - Generatori: Pot fi folosiți pentru a lucra cu asincronia în combinație cu biblioteca
cosau manual, deșiasync/awaita devenit o abordare mai răspândită.
Compararea principalelor abordări:
| Metodă | Avantaje | Dezavantaje |
|---|---|---|
| Callbacks | Simplu la început | "Callback hell", complexitate în gestionarea erorilor |
| Promises | Mai bună lizibilitate, gestionarea erorilor | Pot fi voluminoase în lanțuri de operații |
| Async/await | Înaltă lizibilitate, asemănare cu codul sincron | Necesită suport de mediu pentru async/await |