Dans nodejs, le rappel consiste à transmettre une fonction en tant que paramètre à une autre fonction, et est généralement appelé une fois la première fonction terminée ; il s'agit d'une fonction équivalente asynchrone, et toutes les API de Node prennent en charge les rappels.
L'environnement d'exploitation de cet article : système Windows 10, nodejs version 12.19.0, ordinateur Dell G3.
Callback est une fonction équivalente asynchrone. La fonction de rappel est appelée lorsqu'une tâche spécifique est terminée. Node utilise largement les rappels. Toutes les API Node prennent en charge les rappels.
Par exemple, une fonction lisant un fichier peut commencer à lire le fichier et permettre l'exécution de l'instruction suivante pour rendre immédiatement le contrôle à l'environnement d'exécution. Une fois les E/S du fichier terminées, il appelle la fonction de rappel, en lui transmettant le contenu du fichier en tant que paramètre. Par conséquent, il n’y a pas de blocage ni d’attente pour les E/S de fichiers. Cela rend Node.js hautement évolutif car il peut gérer un grand nombre de requêtes sans attendre qu'une fonction renvoie un résultat.
Exemple de code de blocage
Créez un fichier nommé input.txt avec le texte suivant
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
Créez un fichier js nommé main.js avec le code suivant dedans :
var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("Program Ended");
Maintenant, exécutez main.js pour voir le résultat :
$ node main.js
Sortie de vérification
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!! Program Ended
Exemple de code non bloquant
Créez un fichier nommé input.txt avec le texte suivant
Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
Mettez à jour le fichier main.js comme le code suivant :
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("Program Ended");
Maintenant, exécutez Les résultats vus par main.js :
$ node test.js
Résultat de vérification
Program Ended Yiibai Point is giving self learning content to teach the world in simple and easy way!!!!!
Ces deux exemples illustrent les concepts d'appels bloquants et non bloquants. Le premier exemple illustre que le programme se bloque jusqu'à ce qu'il lise le fichier, puis avance uniquement là où le programme se termine. Dans le deuxième exemple, le programme n'attend pas que le fichier soit lu, mais il affiche simplement "Program Ended" et pendant ce temps, le programme continue de lire le fichier sans blocage.
Par conséquent, le programme bloquant s'exécute en séquence, ce qui facilite la mise en œuvre de la logique d'un point de vue programmation, mais le programme non bloquant ne s'exécute pas en séquence. Dans un tel cas, un programme doit utiliser des données. pour le traitement, il doit rester en utilisant la formule Les mêmes blocs sont exécutés séquentiellement.
Apprentissage recommandé : "Tutoriel vidéo Nodejs"
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!