JavaScript Qu'est-ce qu'un rappel?


Exemple

Ceci est un appel de fonction normal:

console.log("Hello World!");

Lorsque vous appelez une fonction normale, elle fait son travail et renvoie le contrôle à l'appelant.

Cependant, une fonction doit parfois retourner le contrôle à l'appelant pour effectuer son travail:

[1,2,3].map(function double(x) {
    return 2 * x;
});

Dans l'exemple ci-dessus, la fonction double est un rappel pour la map fonction car:

  1. La fonction double est donnée à la map fonction par l'appelant.
  2. La fonction map doit appeler la fonction double zéro ou plusieurs fois pour effectuer son travail.

Ainsi, la fonction map renvoie essentiellement le contrôle à l'appelant chaque fois qu'il appelle la fonction double . Par conséquent, le nom "callback".


Les fonctions peuvent accepter plusieurs rappels:

promise.then(function onFulfilled(value) {
    console.log("Fulfilled with value " + value);
}, function onRejected(reason) {
    console.log("Rejected with reason " + reason);
});

Ici, la fonction accepte then deux fonctions de rappel, onFulfilled et onRejected . De plus, seule une de ces deux fonctions de rappel est appelée.

Ce qui est plus intéressant, c’est que la fonction retourne then avant que l’un ou l’autre des callbacks soit appelé. Par conséquent, une fonction de rappel peut être appelée même après le retour de la fonction d'origine.