Συνάρτηση CallBack JavaScript

Πίνακας περιεχομένων

Σε αυτό το σεμινάριο, θα μάθετε για τις λειτουργίες επιστροφής JavaScript με τη βοήθεια παραδειγμάτων.

Μια συνάρτηση είναι ένα μπλοκ κώδικα που εκτελεί μια συγκεκριμένη εργασία όταν καλείται. Για παράδειγμα,

 // function function greet(name) ( console.log('Hi' + ' ' + name); ) greet('Peter'); // Hi Peter

Στο παραπάνω πρόγραμμα, μια τιμή συμβολοσειράς μεταβιβάζεται ως όρισμα στη greet()συνάρτηση.

Στο JavaScript, μπορείτε επίσης να μεταβιβάσετε μια συνάρτηση ως όρισμα σε μια συνάρτηση. Αυτή η συνάρτηση που μεταβιβάζεται ως όρισμα μέσα σε μια άλλη συνάρτηση ονομάζεται συνάρτηση επανάκλησης. Για παράδειγμα,

 // function function greet(name, callback) ( console.log('Hi' + ' ' + name); callback(); ) // callback function function callMe() ( console.log('I am callback function'); ) // passing function as an argument greet('Peter', callMe);

Παραγωγή

 Γεια Peter, είμαι συνάρτηση επανάκλησης

Στο παραπάνω πρόγραμμα, υπάρχουν δύο λειτουργίες. Κατά την κλήση της greet()συνάρτησης, περνούν δύο ορίσματα (μια τιμή συμβολοσειράς και μια συνάρτηση).

Η callMe()συνάρτηση είναι μια συνάρτηση επανάκλησης.

Πλεονέκτημα της λειτουργίας Callback

Το πλεονέκτημα της χρήσης μιας λειτουργίας επιστροφής κλήσης είναι ότι μπορείτε να περιμένετε το αποτέλεσμα μιας προηγούμενης κλήσης λειτουργίας και, στη συνέχεια, να εκτελέσετε μια άλλη κλήση λειτουργίας.

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη setTimeout()μέθοδο για να μιμηθούμε το πρόγραμμα που απαιτεί χρόνο για την εκτέλεση, όπως δεδομένα που προέρχονται από το διακομιστή.

Παράδειγμα: Πρόγραμμα με το setTimeout ()

 // program that shows the delay in execution function greet() ( console.log('Hello world'); ) function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function setTimeout(greet, 2000); sayName('John');

Παραγωγή

 Γεια Τζον Γεια σας κόσμο

Όπως γνωρίζετε, η μέθοδος setTimeout () εκτελεί ένα μπλοκ κώδικα μετά τον καθορισμένο χρόνο.

Εδώ, η greet()συνάρτηση καλείται μετά από 2000 χιλιοστά του δευτερολέπτου ( 2 δευτερόλεπτα). Κατά τη διάρκεια αυτής της αναμονής, sayName('John');εκτελείται. Γι 'αυτό το Hello John εκτυπώνεται πριν από το Hello world.

Ο παραπάνω κώδικας εκτελείται ασύγχρονα (η δεύτερη συνάρτηση. sayName()Δεν περιμένει την πρώτη συνάρτηση. greet()Να ολοκληρωθεί).

Παράδειγμα: Χρήση μιας συνάρτησης επανάκλησης

Στο παραπάνω παράδειγμα, η δεύτερη συνάρτηση δεν περιμένει την ολοκλήρωση της πρώτης συνάρτησης. Ωστόσο, εάν θέλετε να περιμένετε το αποτέλεσμα της προηγούμενης κλήσης λειτουργίας πριν από την εκτέλεση της επόμενης δήλωσης, μπορείτε να χρησιμοποιήσετε μια συνάρτηση επανάκλησης. Για παράδειγμα,

 // Callback Function Example function greet(name, myFunction) ( console.log('Hello world'); // callback function // executed only after the greet() is executed myFunction(name); ) // callback function function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function after 2 seconds setTimeout(greet, 2000, 'John', sayName);

Παραγωγή

 Γεια σου κόσμο Γεια Τζον

Στο παραπάνω πρόγραμμα, ο κώδικας εκτελείται ταυτόχρονα. Η sayName()συνάρτηση μεταβιβάζεται ως όρισμα στη greet()συνάρτηση.

Η setTimeout()μέθοδος εκτελεί τη greet()λειτουργία μόνο μετά από 2 δευτερόλεπτα. Ωστόσο, η sayName()συνάρτηση περιμένει την εκτέλεση της greet()συνάρτησης.

Σημείωση : Η λειτουργία επανάκλησης είναι χρήσιμη όταν πρέπει να περιμένετε για ένα αποτέλεσμα που απαιτεί χρόνο. Για παράδειγμα, τα δεδομένα που προέρχονται από έναν διακομιστή επειδή χρειάζονται χρόνο για να φτάσουν τα δεδομένα.

ενδιαφέροντα άρθρα...