Στον κόσμο του προγραμματισμού, είναι κρίσιμο να χειρίζεσαι ασύγχρονες διαδικασίες αποτελεσματικά για να διασφαλίσεις μια ελκυστική εμπειρία χρήστη. Ιδιαίτερα στο JavaScript, υπάρχουν πολλές δυνατότητες για να το κάνεις αυτό. Μία από τις πιο δημοφιλείς μεθόδους για να εργαστείς με ασύγχρονες διαδικασίες είναι η κατασκευή async/await. Αυτή περιλαμβάνει μια συντακτική απλοποίηση που σου επιτρέπει να κάνεις τον ασύγχρονο προγραμματισμό πιο σαφή και ευανάγνωστο. Ας μάθουμε σε αυτόν τον οδηγό τα βασικά του async και await και πώς μπορούν να βελτιώσουν τον κώδικά σου.
Κύριες επισημάνσεις
- async/await επιτρέπει μια σαφή και πιο απλή σύνταξη για την εκτέλεση ασύγχρονων διαδικασιών.
- Κάθε συνάρτηση που χρησιμοποιεί την λέξη-κλειδί await, πρέπει να δηλωθεί ως async.
- await περιμένει αποτελεσματικά την εκπλήρωση μιας υπόσχεσης πριν ο κώδικας προχωρήσει.
- Η διαχείριση σφαλμάτων μπορεί να υλοποιηθεί με κομψό τρόπο με μπλοκ try/catch.
Οδηγός Βήμα-Βήμα
Πρώτα, θα πρέπει να διασφαλίσεις ότι καταλαβαίνεις τα βασικά της υπόσχεσης, καθώς το async/await βασίζεται σε αυτό. Αν είσαι εξοικειωμένος με τις υποσχέσεις, μπορούμε τώρα να συζητήσουμε την χρήση του async/await.
Βήμα 1: Δημιουργία μιας λειτουργίας καθυστέρησης
Ξεκίνα με μια απλή συνάρτηση που επιστρέφει μια υπόσχεση, η οποία προσομοιώνει μια καθυστέρηση. Ακολουθεί ένα παράδειγμα μιας συνάρτησης που ονομάζεται delay.
Αυτή είναι μια βασική υλοποίηση. Με αυτή τη συνάρτηση μπορείς να δηλώσεις μια καθυστέρηση σε χιλιοστά του δευτερολέπτου.

Βήμα 2: Εισαγωγή του Async και Await
Τώρα θέλεις να εκμεταλλευτείς τα πλεονεκτήματα του async/await. Ξεκίνα δημιουργώντας μια συνάρτηση που χρησιμοποιεί την λέξη-κλειδί async.
Σε αυτόν τον κωδικό, η συνάρτηση runDelay χρησιμοποιεί την λέξη-κλειδί async, γεγονός που της επιτρέπει να χρησιμοποιεί το await. Αυτό σημαίνει ότι η εκτέλεση της συνάρτησης θα σταματήσει μέχρι να εκπληρωθεί η υπόσχεση που επιστρέφεται από τη συνάρτηση delay.
Βήμα 3: Δοκιμή της ασύγχρονης συνάρτησης
Για να δοκιμάσεις τη λειτουργία, κάλεσε τη συνάρτηση runDelay.
Όταν εκτελέσεις το σενάριο, θα δεις ότι η κονσόλα εμφανίζει "Έναρξη καθυστέρησης...", στη συνέχεια σταματά για 2 δευτερόλεπτα και τελικά εμφανίζει "Η καθυστέρηση ολοκληρώθηκε."
Βήμα 4: Διαχείριση Σφαλμάτων με try/catch
Αυτό συμβαίνει συχνά στον προγραμματισμό – τα σφάλματα μπορούν να εμφανιστούν ανά πάσα στιγμή. Με το async/await, μπορείς να διαχειριστείς τα σφάλματα πιο εύκολα χρησιμοποιώντας το try/catch.
Αν θέλεις να πιάσεις σφάλματα, μπορείς να τροποποιήσεις τη συνάρτηση runDelay ως εξής:
Με τη χρήση try/catch, κάθε σφάλμα που προκύπτει κατά την εκτέλεση του await delay(2000) μπορεί να πιαστεί και να εμφανιστεί.

Βήμα 5: Χρήση του fetch με async/await
Μια άλλη συχνά χρησιμοποιούμενη περίπτωση είναι η ανάκτηση δεδομένων με την API fetch.
Σε αυτό το παράδειγμα, γίνεται μια αίτηση δικτύου με το fetch. Και πάλι, μπορούμε με το await να διασφαλίσουμε ότι περιμένουμε την απάντηση πριν προχωρήσουμε.
Σύνοψη - Async και Await: Ένας Οδηγός Βήμα-Βήμα
Σε αυτόν τον οδηγό, έμαθες πώς να χειρίζεσαι ασύγχρονες διαδικασίες πιο σαφώς με την κατασκευή async/await στο JavaScript. Είδες πώς να δημιουργήσεις μια λειτουργία καθυστέρησης, πώς να διαχειριστείς σφάλματα και πώς να ανακτήσεις δεδομένα αποτελεσματικά με την API fetch.
Χρησιμοποίησε αυτή τη σύνταξη στα μελλοντικά σου έργα για να κάνεις τον κώδικά σου πιο ευανάγνωστο και ευκολότερο στη συντήρηση!
Συχνές Ερωτήσεις
Ποια είναι η διαφορά μεταξύ async και await;Το async σηματοδοτεί μια συνάρτηση ως ασύγχρονη, που σημαίνει ότι επιστρέφει υποσχέσεις. Το await χρησιμοποιείται για να περιμένει το αποτέλεσμα μιας υπόσχεσης.
Πότε θα πρέπει να χρησιμοποιείς async/await;Χρησιμοποίησέ το όταν εργάζεσαι με ασύγχρονες διαδικασίες και θέλεις ο κώδικάς σου να παραμείνει σαφής και ευανάγνωστος.
Μπορώ να χρησιμοποιώ async/await σε οποιοδήποτε πρόγραμμα περιήγησης;Ναι, αλλά βεβαιώσου ότι το πρόγραμμα περιήγησης που χρησιμοποιείς υποστηρίζει σύγχρονη σύνταξη JavaScript. Αν χρειαστεί, μπορούν να χρησιμοποιηθούν μεταγλωττιστές όπως το Babel.
Μπορώ να χρησιμοποιώ await σε μια κανονική συνάρτηση;Όχι, για να χρησιμοποιήσεις το await, η συνάρτηση στην οποία χρησιμοποιείται πρέπει να δηλώνεται ως async.
Τι συμβαίνει όταν αποτύχει μια υπόσχεση;Όταν αποτύχει μια υπόσχεση, εκτοξεύεται ένα σφάλμα που μπορεί να αντιμετωπιστεί με try/catch.