Latest web development tutorials

función de devolución de Node.js

Directamente refleja la programación asincrónica Node.js es la devolución de llamada.

Basándose en la programación asincrónica de devolución de llamada de lograr, pero no se puede decir que después de usar la devolución de llamada del programa asíncrono.

La función de devolución de llamada se llamará después de la finalización de la tarea, el nodo utiliza una gran cantidad de devoluciones de llamada, API nodo soporta todas las funciones de devolución de llamada.

Por ejemplo, podemos leer la parte del archivo, mientras que la ejecución de otros comandos, después de leer el documento sea completa, ARCHIVAREMOS contenidos como argumento a la función de devolución de llamada de retorno. En el cumplimiento de código no están bloqueados o en espera de archivo de operaciones I / O. Esto mejora considerablemente el rendimiento de Node.js puede manejar un gran número de solicitudes simultáneas.


El bloqueo de ejemplos de código

Crear un archivo de entrada.txt, dice lo siguiente:

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

Crear archivo main.js, de la siguiente manera:

var fs = require("fs");

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

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

El código de seguridad se ejecuta como sigue:

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

程序执行结束!

Sin bloqueo ejemplos de código

Crear un archivo de entrada.txt, dice lo siguiente:

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

Crear archivo main.js, de la siguiente manera:

var fs = require("fs");

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

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

El código de seguridad se ejecuta como sigue:

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

Somos conscientes de los dos ejemplos anteriores de diferente bloqueo y las llamadas no bloqueantes. Después de la primera instancia del archivo que se lee antes de ejecutar el programa. La segunda instancia que no es necesario esperar a leer el archivo completo, por lo que el código siguiente se puede ejecutar al mismo tiempo al leer el archivo, lo que mejora el rendimiento del programa.

De este modo, mediante el bloqueo se ejecuta de forma secuencial, mientras que los no-bloqueo no es necesaria con el fin, por lo que si usted necesita para manejar el parámetro de la función de devolución de llamada, tenemos que escribir en la función de devolución de llamada.