Sobes.tech
Junior

Navedite alate koje ste koristili za pisanje asinhronih poziva.

sobes.tech АИ

Одговор од АИ

JavaScript nudi različite alate za rad sa asinhronim pozivima:

  • Callback funkcije: Klasičan pristup, gde se funkcija prosleđuje kao argument drugoj funkciji i izvršava nakon završetka asinhrone operacije.

  • Promises (obećanja): Objekti koji predstavljaju buduću vrednost ili grešku asinhrone operacije. Olakšavaju lančano izvršavanje asinhronih poziva i obradu grešaka.

    // Primer korišćenja promises
    fetch('/api/data')
      .then(response => response.json()) // Obrada uspešnog odgovora
      .then(data => console.log(data)) // Rad sa dobijenim podacima
      .catch(error => console.error('Greška:', error)); // Obrada grešaka
    
  • Async/await: Sintaksički šećer nad promises, omogućava pisanje asinhronog koda u jednostavnijem stilu, što povećava čitljivost.

    // Primer korišćenja async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Čekanje na završetak fetch
        const data = await response.json(); // Čekanje na parsiranje JSON
        console.log(data);
      } catch (error) {
        console.error('Greška:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Osnovni API za izvršavanje HTTP zahteva u pretraživaču. Viši nivo u poređenju sa fetch i zahteva više koda za obradu.

    // Primer korišćenja XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asinhroni zahtev
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Greška:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Greška mreže');
    };
    xhr.send();
    
  • Fetch API: Moderniji i fleksibilniji API za izvršavanje HTTP zahteva, zasnovan na promises.

    // Primer korišćenja Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Greška:', error));
    
  • Biblioteke za rad sa HTTP zahtevima: Na primer, axios (za pretraživače i Node.js) ili jQuery.ajax(). Olakšavaju i standardizuju izvršavanje asinhronih zahteva.

    // Primer korišćenja Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Greška:', error));
    

Izbor alata zavisi od specifičnosti zadatka i konteksta projekta. Fetch i async/await su savremeni i preporučeni pristupi za većinu slučajeva.