À retenir
- C'est une fonction transmise comme un simple paramètre.
- Elle permet de ne pas bloquer le programme pendant une attente.
- Elle définit un comportement « à déclencher plus tard ».
Une fonction de rappel est une instruction que l'on confie à un programme pour qu'il l'exécute uniquement lorsqu'un événement précis survient ou qu'une tâche est terminée. C'est comme laisser ses coordonnées à un artisan : au lieu d'attendre sur place qu'il finisse son travail, vous lui demandez de vous rappeler dès que tout est prêt.
Étymologie
Traduction du terme anglais callback. Le concept s'est imposé avec le développement de l'informatique interactive et réseau, où l'ordinateur doit souvent attendre une réponse (d'un serveur, d'un utilisateur ou d'un matériel) avant de poursuivre une action précise.
Exemples d'usage
- En développement web, dire au navigateur : « Affiche un message d'alerte (fonction de rappel) quand l'utilisateur clique sur ce bouton ».
- Lors du téléchargement d'un fichier, définir une fonction qui se déclenche automatiquement pour prévenir l'utilisateur une fois le transfert fini.
Cas d'usage
On l'utilise massivement en développement d'interfaces (clics, mouvements de souris), dans la gestion des bases de données (traiter le résultat d'une recherche) et dans toutes les opérations dites asynchrones où le programme ne doit pas rester bloqué en attendant un résultat.
Bonnes pratiques
Il est crucial de bien nommer ses fonctions de rappel pour comprendre leur rôle. Un piège classique est le callback hell (enfer des rappels), où l'on imbrique trop de fonctions les unes dans les autres, rendant le code illisible. Dans ce cas, il est préférable d'utiliser des outils plus modernes comme les Promises.
Synonymes
Antonymes
Conseil
Pour bien comprendre, essayez de manipuler des listes en JavaScript avec la méthode .filter() ou .map() : la fonction que vous glissez à l'intérieur est une fonction de rappel qui s'appliquera à chaque élément.
Questions fréquentes
Une fonction de rappel s'exécute-t-elle toujours plus tard ?
Pas forcément. Il existe des rappels synchrones qui s'exécutent immédiatement (comme lors d'un tri de liste) et des rappels asynchrones qui attendent un événement futur (comme un clic).
Est-ce spécifique à un langage ?
Non, le concept existe dans presque tous les langages modernes (JavaScript, Python, C++, Java, etc.), même si la syntaxe varie.