Sobes.tech
Junior

Norādiet rīkus, kurus izmantojāt asinhrono zvanu rakstīšanai.

sobes.tech AI

Atbilde no AI

JavaScript piedāvā dažādus rīkus darbam ar asinhronajiem izsaukumiem:

  • Callback funkcijas: Klasisks pieejas veids, kur funkcija tiek nodota kā argumenta citai funkcijai un tiek izpildīta pēc asinhronās operācijas pabeigšanas.

  • Promises (solījumi): Objekti, kas pārstāv nākotnes vērtību vai kļūdu asinhronajā operācijā. Tie atvieglo ķēžu veidošanu un kļūdu apstrādi.

    // Piemērs, izmantojot promises
    fetch('/api/data')
      .then(response => response.json()) // Veiksmīgas atbildes apstrāde
      .then(data => console.log(data)) // Darbs ar saņemto datu
      .catch(error => console.error('Kļūda:', error)); // Kļūdu apstrāde
    
  • Async/await: Sintaktiskais cukurs virs promises, kas ļauj rakstīt asinhrono kodu skaidrāk, uzlabojot lasāmību.

    // Piemērs, izmantojot async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Gaida fetch pabeigšanu
        const data = await response.json(); // Gaida JSON parsēšanu
        console.log(data);
      } catch (error) {
        console.error('Kļūda:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Bāzes API HTTP pieprasījumu veikšanai pārlūkprogrammā. Tas ir zemākā līmenī nekā fetch un prasa vairāk koda apstrādei.

    // Piemērs, izmantojot XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asinhrons pieprasījums
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Kļūda:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Tīkla kļūda');
    };
    xhr.send();
    
  • Fetch API: Mūsdienīgāks un elastīgāks API HTTP pieprasījumu veikšanai, balstīts uz promises.

    // Piemērs, izmantojot Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Kļūda:', error));
    
  • HTTP pieprasījumu bibliotēkas: Piemēram, axios (pārlūkprogrammām un Node.js) vai jQuery.ajax(). Tās vienkāršo un standartizē asinhrono pieprasījumu veikšanu.

    // Piemērs, izmantojot Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Kļūda:', error));
    

Izvēle ir atkarīga no uzdevuma specifikas un projekta konteksta. Fetch un async/await ir mūsdienīgi un ieteicami lielākajā daļā gadījumu.