Ποιους τρόπους εργασίας με ασύγχρονο κώδικα γνωρίζεις;
sobes.tech AI
Απάντηση από AI
Callbacks, Promises, async/await.
Callbacks: Λειτουργίες που περνιούνται ως ορίσματα σε άλλες λειτουργίες και καλούνται μετά την ολοκλήρωση μιας ασύγχρονης λειτουργίας.
Promises: Αντικείμενα που προσφέρουν έναν πιο βολικό τρόπο διαχείρισης της ασύγχρονης λειτουργίας σε σύγκριση με τα callbacks. Έχουν καταστάσεις pending, fulfilled και rejected.
// Παράδειγμα Promise
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Η λειτουργία ολοκληρώθηκε με επιτυχία!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Συντακτική ζάχαρη πάνω από Promises, που καθιστά τον ασύγχρονο κώδικα πιο παρόμοιο με τον συγχρονικό και βελτιώνει την αναγνωσιμότητά του.
// Παράδειγμα async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Σύγκριση μεθόδων:
| Μέθοδος | Αναγνωσιμότητα / Συντήρηση | Διαχείριση σφαλμάτων | Έλεγχος ροής |
|---|---|---|---|
| Callbacks | Λιγότερο αναγνώσιμο (Callback Hell) | Δύσκολο | Δύσκολο |
| Promises | Βελτιωμένο | Άνετο (.catch) | Άνετο (.then, .catch) |
| async/await | Καλύτερο | Άνετο (try...catch) | Άνετο (await) |
Ο πιο προτιμώμενος τρόπος σε σύγχρονες εφαρμογές Node.js είναι η χρήση του async/await λόγω της αναγνωσιμότητας και της άνεσής του. Τα Promises παραμένουν ένα σημαντικό εργαλείο, ειδικά σε χαμηλότερο επίπεδο υλοποίησης. Τα callbacks χρησιμοποιούνται σε παλαιότερο κώδικα ή για λειτουργίες χαμηλού επιπέδου στον πυρήνα του Node.js.