Sobes.tech
Junior

Ποιους τρόπους εργασίας με ασύγχρονο κώδικα γνωρίζεις;

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.