Passer des arguments supplémentaires aux fonctions de rappel
En JavaScript, les fonctions de rappel sont couramment utilisées pour exécuter des opérations asynchrones. Ils acceptent un ou plusieurs arguments et sont invoqués une fois l'opération terminée. Parfois, il est nécessaire de passer des arguments supplémentaires à une fonction de rappel.
Considérons l'exemple suivant :
const callWithMagic = callback => { const magic = getMagic(); callback(magic); }; const processMagic = (magic, theAnswer) => { someOtherMagic(); };
Ici, la fonction callWithMagic prend une fonction de rappel comme paramètre et l'appelle avec un seul argument nommé magie. Cependant, nous avons également une fonction processMagic qui nécessite deux arguments : magic et theAnswer.
Pour transmettre la fonction processMagic comme argument à callWithMagic, nous devons fournir à la fois magic et theAnswer comme arguments. Une façon d'y parvenir consiste à utiliser une fonction de rappel wrapper :
callWithMagic(function(magic) { return processMagic(magic, 42); });
Dans ce cas, la fonction wrapper prend magic comme argument et renvoie le résultat de l'appel de processMagic avec magic et une valeur codée en dur de 42 pour theAnswer. .
Alternativement, nous pouvons exploiter les fonctions fléchées ES6 pour une approche plus concise :
callWithMagic(magic => processMagic(magic, 42));
Ceci La fonction arrow prend également la magie comme argument mais renvoie implicitement le résultat de l'appel de processMagic.
En utilisant soit la fonction wrapper, soit la fonction arrow, nous pouvons passer un argument supplémentaire à la fonction de rappel, nous permettant d'utiliser plus rappels complexes avec des dépendances supplémentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!