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
fetchi 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) lubjQuery.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.