Le « callback »: une notion centrale en javascript

Un callback est une fonction passée en argument à une autre fonction, qui est censée être exécutée (appelée en retour) à un moment donné. Cette technique permet de rendre le code plus modulaire et gère des opérations asynchrones. Les callbacks sont couramment utilisés dans les événements, les I/O, et les opérations asynchrones en général.

Callbacks les plus courants

On utilise souvent des callbacks dans plusieurs cas. Par exemple:

  • Avec array.map(callback). Exemple:
function doubler(x) {
  return x * 2;
}

const arr = [1, 2, 3];
const arrDouble = arr.map(doubler);
  • Avec les fonctions asynchrone, comme setTimeout:
function afficherMessage() {
  console.log('Bonjour');
}

setTimeout(afficherMessage, 1000);
  • Avec les événement DOM :
function handleClick(event) {
  console.log('Élément cliqué:', event.target);
}

document.getElementById('monBouton').addEventListener('click', handleClick);

Les callbacks peuvent être synchrones ou asynchrones.

Problèmes courants avec les Callbacks

  1. Callback Hell (« Pyramid of Doom ») : L’imbriquement de plusieurs niveaux de callbacks peut rendre le code difficile à lire et à maintenir.javascript
  1. asyncOperation(function() { anotherAsync(function() { yetAnother(function() { // ... }); }); });
  2. Gestion des erreurs : Les callbacks ne suivent pas toujours un modèle de gestion des erreurs uniforme, ce qui peut compliquer la gestion des erreurs.

Alternatives aux Callbacks

  1. Promesses : Offrent une meilleure syntaxe et une gestion des erreurs plus robuste.
  2. Async/Await : Permettent d’écrire du code asynchrone qui ressemble à du code synchrone, rendant ainsi le code plus lisible.

Les callbacks sont un concept fondamental en JavaScript, mais ils sont aussi présents dans de nombreux autres langages de programmation. Ils permettent une grande flexibilité, mais doivent être utilisés judicieusement pour éviter les complications.


  • https://www.w3schools.com/js/js_callback.asp