Sobes.tech
Junior

Uveďte nástroje, ktoré ste použili na písanie asynchrónnych volaní.

sobes.tech AI

Odpoveď od AI

JavaScript ponúka rôzne nástroje na prácu s asynchrónnymi volaniami:

  • Callback funkcie: Klasický prístup, kde sa funkcia odovzdáva ako argument inej funkcii a vykoná sa po dokončení asynchrónnej operácie.

  • Promises (sľuby): Objekt predstavujúci budúcu hodnotu alebo chybu asynchrónnej operácie. Zjednodušujú reťazenie asynchrónnych volaní a spracovanie chýb.

    // Príklad použitia promises
    fetch('/api/data')
      .then(response => response.json()) // Spracovanie úspešnej odpovede
      .then(data => console.log(data)) // Práca s načítanými dátami
      .catch(error => console.error('Chyba:', error)); // Spracovanie chýb
    
  • Async/await: Syntaxický cukor nad promises, umožňujúci písať asynchrónny kód v jednoduchšom štýle, čo zvyšuje čitateľnosť.

    // Príklad použitia async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Čakanie na dokončenie fetch
        const data = await response.json(); // Čakanie na parsovanie JSON
        console.log(data);
      } catch (error) {
        console.error('Chyba:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Základné API na vykonávanie HTTP požiadaviek v prehliadači. Je nižšej úrovne ako fetch a vyžaduje viac kódu na spracovanie.

    // Príklad použitia XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asynchrónna požiadavka
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Chyba:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Chyba siete');
    };
    xhr.send();
    
  • Fetch API: Modernéjší a flexibilnejší API na vykonávanie HTTP požiadaviek, založené na promises.

    // Príklad použitia Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Chyba:', error));
    
  • Knihovny na prácu s HTTP požiadavkami: Napríklad axios (pre prehliadače a Node.js) alebo jQuery.ajax(). Uľahčujú a štandardizujú vykonávanie asynchrónnych požiadaviek.

    // Príklad použitia Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Chyba:', error));
    

Výber nástroja závisí od špecifík úlohy a kontextu projektu. Fetch a async/await sú moderné a odporúčané prístupy pre väčšinu prípadov.