Je regardais Express récemment, et j'ai vu partout l'utilisation de fonctions de rappel qui prennent des fonctions comme paramètres. Si vous ne comprenez pas ce concept, le code de nodejs et express sera un gâchis. Par exemple :
Cela affichera 5.
La fonction de rappel est placée dans la liste des paramètres d'une autre fonction (telle que parent), transmise à ce parent en tant que paramètre, puis exécutée quelque part dans le corps de la fonction parent. C'est abstrait, regardons un exemple :
La fonction doit est appelée ci-dessous. Il convient de noter que lorsque doit a été défini tout à l'heure, le rappel n'était pas défini, donc je ne savais pas à quoi servait le rappel. C'est en fait facile à comprendre. Lorsque nous définissons habituellement une fonction, le paramètre reçoit uniquement un nom, tel que a, et a est utilisé dans le corps de la fonction, mais l'ensemble du processus ne sait pas ce qu'est a uniquement lors de l'appel. function Ensuite seulement, spécifiez la valeur spécifique de a, telle que 2. Avec le recul, lors de l'appel de doit, nous devons spécifier ce qu'est le rappel. Comme vous pouvez le voir, cette fonction complète une fonction somme.
Le processus d'exécution du code ci-dessus est :
Appelez la fonction doit, le paramètre est une fonction anonyme ; entrez le corps de la fonction doit, définissez d'abord a, b, c, puis exécutez la fonction anonyme tout à l'heure, les paramètres sont a, b, c et retournez a t, et enfin revenir A t 10 donne d.
Retour à l'exemple d'origine, app.use(...) est un appel de fonction. On peut imaginer qu'une méthode d'utilisation doit avoir été définie auparavant, mais elle n'est pas donnée ici. Une fois que vous comparez ces deux exemples, vous pouvez le comprendre immédiatement.
Lorsque nous utilisons nodejs et express, il nous est impossible de trouver la définition de fonction de chaque méthode ou fonction et d'y jeter un œil. Sachez donc simplement quels paramètres sont transmis au rappel dans cette définition. Ensuite lors de l’appel d’une méthode ou d’une fonction, nous définissons nous-mêmes des fonctions anonymes dans les paramètres pour compléter certaines fonctions.
Fini !