Latest web development tutorials

fonction de rappel Node.js

reflète directement la programmation asynchrone Node.js est le rappel.

En se fondant sur la programmation asynchrone callback pour atteindre, mais ne peut pas dire que après avoir utilisé le rappel du programme asynchrone.

La fonction de rappel sera appelé après l'achèvement de la tâche, le nœud utilise beaucoup de callbacks, API Node prend en charge toutes les fonctions de rappel.

Par exemple, nous pouvons lire le côté du fichier, tandis que la mise en œuvre d'autres commandes, après avoir lu le document est complet, nous déposons le contenu comme un argument pour le rendement de la fonction de rappel. Dans l'exécution de codes ne sont pas bloqués ou en attente pour le fichier / O des opérations I. Cela améliore grandement les performances de Node.js peut gérer un grand nombre de requêtes simultanées.


Blocage des exemples de code

Créer un input.txt de fichier, se lit comme suit:

本教程官网地址:www.w3big.com

Créer un fichier main.js, comme suit:

var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("程序执行结束!");

Le code ci-dessus est exécuté comme suit:

$ node main.js
本教程官网地址:www.w3big.com

程序执行结束!

Des exemples non-bloquante de code

Créer un input.txt de fichier, se lit comme suit:

本教程官网地址:www.w3big.com

Créer un fichier main.js, comme suit:

var fs = require("fs");

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

console.log("程序执行结束!");

Le code ci-dessus est exécuté comme suit:

$ node main.js
程序执行结束!
本教程官网地址:www.w3big.com

Nous comprenons les deux exemples ci-dessus de blocage différents et appels non-bloquant. Après la première instance du fichier est lu avant d'exécuter le programme. Le deuxième cas on n'a pas besoin d'attendre pour lire le dossier complet, de sorte que le prochain code peut être exécuté en même temps lors de la lecture du fichier, ce qui améliore considérablement les performances du programme.

Ainsi, en bloquant est exécuté séquentiellement, tandis que les non-blocage ne soit pas nécessaire dans l'ordre, si vous avez besoin pour gérer le paramètre de la fonction de rappel, nous avons besoin d'écrire dans la fonction de rappel.