Sobes.tech
Junior

Uveďte nástroje, které jste použili k psaní asynchronních volání.

sobes.tech AI

Odpověď od AI

JavaScript nabízí různé nástroje pro práci s asynchronními voláními:

  • Callback funkce: Klasický přístup, kdy je funkce předána jako argument jiné funkce a vykoná se po dokončení asynchronní operace.

  • Promises (sliby): Objekt představující budoucí hodnotu nebo chybu asynchronní operace. Zjednodušují řetězení asynchronních volání a zpracování chyb.

    // Příklad použití promises
    fetch('/api/data')
      .then(response => response.json()) // Zpracování úspěšné odpovědi
      .then(data => console.log(data)) // Práce s načtenými daty
      .catch(error => console.error('Chyba:', error)); // Zpracování chyb
    
  • Async/await: Syntaxový cukr nad promises, umožňující psát asynchronní kód v jednodušším stylu, což zvyšuje čitelnost.

    // Příklad použití async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Čekání na dokončení fetch
        const data = await response.json(); // Čekání na parsování JSON
        console.log(data);
      } catch (error) {
        console.error('Chyba:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Základní API pro provádění HTTP požadavků v prohlížeči. Je nižší úrovně než fetch a vyžaduje více kódu pro zpracování.

    // Příklad použití XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asynchronní požadavek
    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 sítě');
    };
    xhr.send();
    
  • Fetch API: Modernější a flexibilnější API pro provádění HTTP požadavků, založené na promises.

    // Příklad použití Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Chyba:', error));
    
  • Knihovny pro práci s HTTP požadavky: Například axios (pro prohlížeče a Node.js) nebo jQuery.ajax(). Zjednodušují a standardizují provádění asynchronních požadavků.

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

Volba nástroje závisí na specifikách úkolu a kontextu projektu. Fetch a async/await jsou moderní a doporučené přístupy pro většinu případů.