Sobes.tech
Junior

Numește instrumentele pe care le-ai folosit pentru a scrie apeluri asincrone.

sobes.tech AI

Răspuns de la AI

JavaScript oferă diverse instrumente pentru lucrul cu apelurile asincrone:

  • Funcții callback: Abordarea clasică, unde o funcție este transmisă ca argument către o altă funcție și se execută după finalizarea operației asincrone.

  • Promisiuni (Promises): Obiecte care reprezintă o valoare viitoare sau o eroare a unei operații asincrone. Simplifică lanțul de apeluri asincrone și gestionarea erorilor.

    // Exemplu de utilizare a promisiunilor
    fetch('/api/data')
      .then(response => response.json()) // Tratarea răspunsului de succes
      .then(data => console.log(data)) // Lucrul cu datele primite
      .catch(error => console.error('Eroare:', error)); // Tratarea erorilor
    
  • Async/await: Zahăr sintactic peste promisiuni, care permite scrierea codului asincron într-un stil mai sincron, ceea ce îmbunătățește lizibilitatea.

    // Exemplu de utilizare a async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Așteptarea finalizării fetch
        const data = await response.json(); // Așteptarea parsing-ului JSON
        console.log(data);
      } catch (error) {
        console.error('Eroare:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): API de bază pentru efectuarea cererilor HTTP în browser. Mai jos nivel comparativ cu fetch și necesită mai mult cod pentru gestionare.

    // Exemplu de utilizare XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Cerere asincronă
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Eroare:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Eroare de rețea');
    };
    xhr.send();
    
  • Fetch API: API modern și mai flexibil pentru efectuarea cererilor HTTP, bazat pe promisiuni.

    // Exemplu de utilizare Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Eroare:', error));
    
  • Biblioteci pentru lucrul cu cereri HTTP: De exemplu, axios (pentru browser și Node.js) sau jQuery.ajax(). Ele simplifică și standardizează efectuarea cererilor asincrone.

    // Exemplu de utilizare Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Eroare:', error));
    

Alegerea instrumentului depinde de specificul sarcinii și de contextul proiectului. Fetch și async/await sunt abordări moderne și recomandate pentru majoritatea cazurilor.