Maison  >  Article  >  interface Web  >  Explication intéressante des fonctions de rappel dans Node.js (avec exemples)

Explication intéressante des fonctions de rappel dans Node.js (avec exemples)

青灯夜游
青灯夜游avant
2021-10-15 10:11:021449parcourir

Cet article vous donnera une introduction intéressante à la fonction de rappel de Node.js, et vous donnera une brève compréhension de la fonction de rappel à travers des exemples. J'espère qu'il vous sera utile !

Explication intéressante des fonctions de rappel dans Node.js (avec exemples)

Discussion intéressante sur la fonction de rappel de Node.js

La manifestation directe de la programmation asynchrone dans Node.js est la fonction de rappel. La fonction de rappel sera appelée après avoir terminé la tâche, et Node.js l'utilise. un grand nombre de fonctions de rappel, je pense qu'il convient d'utiliser Node.js pour parler des fonctions de rappel. Maintenant, laissez-moi faire de mon mieux pour parler de la fonction de rappel ~ [Apprentissage recommandé : "Tutoriel Nodejs"]

Qu'est-ce que la fonction de rappel

Vous allez sur le forum en ligne pour rechercher des graines de ressources, mais vous ne trouvez pas la ressource que vous recherchez. Ensuite, vous postez sur le forum et laissez votre e-mail demandant des ressources. Quelques jours plus tard, un internaute trouve la ressource et vous envoie un e-mail. Vous recevez ensuite la graine de ressource et la téléchargez. la ressource. Ici, lorsque vous laissez une adresse e-mail dans le forum, vous enregistrez la fonction de rappel. L'adresse e-mail que vous laissez est la fonction de rappel. Lorsque quelqu'un trouve la ressource et vous envoie un e-mail, la fonction de rappel est déclenchée et la fonction de rappel est appelée. . Vous obtenez la graine et la téléchargez, qui est l'événement de rappel.

Exemple :

function main(info,callback){
    console.log("点赞、评论、转发了没?!")
    callback(info)
}

function say(msg){
    console.log(msg)
}

main("给了,给了!",say)

Ici, le rappel est la fonction de rappel, bien sûr, ce nom ne doit pas être utilisé. Dans le corps de la fonction, un message est d'abord généré, puis la fonction de rappel est appelée. La fonction de rappel (de rappel) utilise msg comme paramètre.

Exemple de fonction de rappel

Il existe deux façons de lire des fichiers à l'aide du programme Node.js. L'une est une opération synchrone. Les commandes suivantes ne peuvent être exécutées qu'une fois l'opération de lecture terminée. Cette méthode est appelée blocage. L'autre méthode est asynchrone, ce qui permet de lire des fichiers tout en exécutant d'autres commandes. Cette méthode est également appelée non bloquante.

La méthode non bloquante est basée sur des fonctions de rappel et permet l'exécution d'opérations en parallèle. Le résultat de l'opération sera traité par la fonction de rappel lorsque l'événement se produit, afin que le programme puisse exécuter l'étape suivante sans attendre le résultat d'une opération. Cela améliore considérablement les performances de Node.js et lui permet de gérer un grand nombre de tâches. demandes concurrentes.

Exemple :

const fs = require("fs")

fs.readFile('./foo.txt',function(err,data){
    if(err) return console.error(err)
    console.log(data.toString())
})

console.log("Node.js 程序已经执行结束~")

Résultat d'exécution :

Node.js 程序已经执行结束~
小的们,快给我点赞~

On peut constater que lors de la lecture d'un fichier, l'instruction de sortie suivante sera exécutée, que le fichier ait été lu ou non. Par conséquent, les mots indiquant que le programme est terminé seront affichés en premier, puis le contenu du fichier sera affiché après avoir attendu que le fichier soit lu. Le contenu du fichier est renvoyé sous forme de données de paramètre de la fonction de rappel, de sorte que vous n'avez pas à attendre la fin de l'opération d'E/S du fichier avant d'exécuter le code.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer