Sobes.tech
Junior

Wymień narzędzia, których używałeś do pisania wywołań asynchronicznych.

sobes.tech AI

Odpowiedź od AI

JavaScript oferuje różne narzędzia do pracy z wywołaniami asynchronicznymi:

  • Funkcje callback: Klasyczne podejście, w którym funkcja jest przekazywana jako argument do innej funkcji i jest wykonywana po zakończeniu operacji asynchronicznej.

  • Obiekty Promise: Reprezentują przyszłą wartość lub błąd operacji asynchronicznej. Ułatwiają łańcuchowe wywoływania i obsługę błędów.

    // Przykład użycia Promise
    fetch('/api/data')
      .then(response => response.json()) // Obsługa udanej odpowiedzi
      .then(data => console.log(data)) // Praca z otrzymanymi danymi
      .catch(error => console.error('Błąd:', error)); // Obsługa błędów
    
  • Async/await: Słodzik składniowy nad Promise, pozwalający pisać kod asynchroniczny w bardziej synchronicznym stylu, co zwiększa czytelność.

    // Przykład użycia async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Czekanie na zakończenie fetch
        const data = await response.json(); // Czekanie na parsowanie JSON
        console.log(data);
      } catch (error) {
        console.error('Błąd:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Podstawowe API do wykonywania żądań HTTP w przeglądarce. Bardziej niskopoziomowe w porównaniu do fetch i wymaga więcej kodu do obsługi.

    // Przykład użycia XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asynchroniczne żądanie
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Błąd:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Błąd sieci');
    };
    xhr.send();
    
  • Fetch API: Nowoczesne i bardziej elastyczne API do wykonywania żądań HTTP, oparte na Promise.

    // Przykład użycia Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Błąd:', error));
    
  • Biblioteki do pracy z żądaniami HTTP: Na przykład axios (dla przeglądarek i Node.js) lub jQuery.ajax(). Ułatwiają i standaryzują wykonywanie asynchronicznych żądań.

    // Przykład użycia Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Błąd:', error));
    

Wybór narzędzia zależy od specyfiki zadania i kontekstu projektu. Fetch i async/await to nowoczesne i zalecane podejścia w większości przypadków.