Κλήση Επανάκλησης JavaScript

"Θα σας καλέσω αργότερα!"

Η επανάκληση (callback) είναι μια συνάρτηση που μεταφέρεται ως παράμετρος σε μια άλλη συνάρτηση

Αυτή η τεχνική επιτρέπει στη συνάρτηση να καλεί μια άλλη συνάρτηση

Οι συνάρτησεις επανάκλησης μπορούν να εκτελεστούν μετά την ολοκλήρωση μιας άλλης συνάρτησης

Σειρά συναρτήσεων

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

Το παράδειγμα αυτό τελικά θα εμφανίσει "Goodbye":

παράδειγμα

function myFirst() {
  myDisplayer("Hello");
}
function mySecond() {
  myDisplayer("Goodbye");
}
myFirst();
mySecond();

Δοκιμάστε το προσωπικά

Το παράδειγμα αυτό τελικά θα εμφανίσει "Hello":

παράδειγμα

function myFirst() {
  myDisplayer("Hello");
}
function mySecond() {
  myDisplayer("Goodbye");
}
mySecond();
myFirst();

Δοκιμάστε το προσωπικά

Έλεγχος σειράς

Συχνά θέλετε να ελέγξετε καλύτερα πότε θα εκτελεστούν οι συναρτήσεις.

Αν υποθέσουμε ότι θέλετε να εκτελέσετε έναν υπολογισμό και να εμφανίσετε το αποτέλεσμα.

Μπορείτε να καλέσετε τη συνάρτηση υπολογιστή (myCalculator) αποθηκεύστε το αποτέλεσμα και καλέστε μια άλλη συνάρτηση (myDisplayer) για να εμφανίσετε το αποτέλεσμα:

παράδειγμα

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2) {
  let sum = num1 + num2;
  return sum;
}
let result = myCalculator(5, 5);
myDisplayer(result);

Δοκιμάστε το προσωπικά

ή μπορείτε να καλέσετε τη συνάρτηση υπολογιστή (myCalculator) και να δώσετε στη συνάρτηση υπολογιστή να καλέσει τη συνάρτηση εμφάνισης (myDisplayer):

παράδειγμα

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2) {
  let sum = num1 + num2;
  myDisplayer(sum);
}
myCalculator(5, 5);

Δοκιμάστε το προσωπικά

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

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

Είναι η στιγμή για την εισαγωγή επανάκλησης.

Κλήση Επανάκλησης JavaScript

Η επανάκληση είναι μια συνάρτηση που μεταφέρεται ως παράμετρος σε μια άλλη συνάρτηση.

Με τη χρήση επανάκλησης, μπορείτε να καλέσετε τη συνάρτηση υπολογιστή μέσω επανάκλησης (myCalculatorκαι αφού ολοκληρωθεί ο υπολογισμός, να εκτελέσει η συνάρτηση υπολογιστή τη λήψη επανάκλησης:

παράδειγμα

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}
myCalculator(5, 5, myDisplayer);

Δοκιμάστε το προσωπικά

Στο παραπάνω παράδειγμα myDisplayer το όνομα της συνάρτησης.

πληροί την παράμετρο myCalculator().

Όταν αποστέλλετε μια συνάρτηση ως παράμετρο, θυμηθείτε να μην χρησιμοποιείτε κόμματα.

Καλή χρήση: myCalculator(5, 5, myDisplayer);

Σφάλμα: myCalculator(5, 5, myDisplayer());

Πότε να χρησιμοποιήσουμε callback;

Το παράδειγμα που βλέπετε δεν είναι πολύ ενδιαφέρον.

Απλοποιούνται, ώστε να σας εξηγήσουμε τη γραμματική των callback.

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

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