Ονομάστε τα εργαλεία που χρησιμοποιήσατε για να γράψετε ασύγχρονες κλήσεις.
sobes.tech AI
Απάντηση από AI
Το JavaScript προσφέρει διάφορα εργαλεία για την εργασία με ασύγχρονες κλήσεις:
-
Λειτουργίες Callback: Κλασική προσέγγιση, όπου μια λειτουργία περνάει ως όρισμα σε μια άλλη λειτουργία και εκτελείται μετά την ολοκλήρωση της ασύγχρονης λειτουργίας.
-
Promises: Αντικείμενα που αντιπροσωπεύουν μια μελλοντική τιμή ή σφάλμα μιας ασύγχρονης λειτουργίας. Απλοποιούν τη διαδοχή ασύγχρονων κλήσεων και τη διαχείριση σφαλμάτων.
// Παράδειγμα χρήσης promises fetch('/api/data') .then(response => response.json()) // Διαχείριση επιτυχούς απάντησης .then(data => console.log(data)) // Εργασία με τα ληφθέντα δεδομένα .catch(error => console.error('Σφάλμα:', error)); // Διαχείριση σφαλμάτων -
Async/await: Συντακτική ζάχαρη πάνω από promises, που επιτρέπει να γράφουμε ασύγχρονο κώδικα με πιο συγχρονισμένο στυλ, βελτιώνοντας την αναγνωσιμότητα.
// Παράδειγμα χρήσης async/await async function fetchData() { try { const response = await fetch('/api/data'); // Αναμονή για το fetch const data = await response.json(); // Αναμονή για το parsing JSON console.log(data); } catch (error) { console.error('Σφάλμα:', error); } } fetchData(); -
XMLHttpRequest (XHR): Βασική API για την εκτέλεση HTTP αιτημάτων στον browser. Πιο χαμηλού επιπέδου σε σύγκριση με το
fetchκαι απαιτεί περισσότερο κώδικα για διαχείριση.// Παράδειγμα χρήσης XMLHttpRequest const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data', true); // Ασύγχρονο αίτημα xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { console.log(JSON.parse(xhr.responseText)); } else { console.error('Σφάλμα:', xhr.statusText); } }; xhr.onerror = function() { console.error('Σφάλμα δικτύου'); }; xhr.send(); -
Fetch API: Σύγχρονη και πιο ευέλικτη API για την εκτέλεση HTTP αιτημάτων, βασισμένη σε promises.
// Παράδειγμα χρήσης Fetch API fetch('/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Σφάλμα:', error)); -
Βιβλιοθήκες για εργασία με HTTP αιτήματα: Για παράδειγμα,
axios(για browser και Node.js) ήjQuery.ajax(). Απλοποιούν και τυποποιούν την εκτέλεση ασύγχρονων αιτημάτων.// Παράδειγμα χρήσης Axios axios.get('/api/data') .then(response => console.log(response.data)) .catch(error => console.error('Σφάλμα:', error));
Η επιλογή του εργαλείου εξαρτάται από τις ιδιαιτερότητες της εργασίας και το πλαίσιο του έργου. Το fetch και το async/await είναι σύγχρονες και συστηνόμενες προσεγγίσεις για τις περισσότερες περιπτώσεις.