Una devolución de llamada es una función que se llama cuando se completa una tarea, por lo que ayuda a prevenir cualquier tipo de bloqueo y una función de devolución de llamada permite que se ejecute otro código mientras tanto. La devolución de llamada se llama cuando la tarea se completa y es equivalente asíncrono para una función. Usando el concepto de devolución de llamada, Node.js puede procesar una gran cantidad de requests sin esperar que ninguna función devuelva el resultado, lo que hace que Node.js sea altamente escalable. Por ejemplo: en Node.js, cuando una función comienza a leer un archivo, devuelve el control al entorno de ejecución inmediatamente para que se pueda ejecutar la siguiente instrucción. Una vez que se complete la E/S del archivo, se llamará a la función de devolución de llamada para evitar el bloqueo o esperar la E/S del archivo.
Ejemplo 1: Código para leer un archivo de forma síncrona (código de bloqueo) en Node.js. Cree un archivo de texto inputfile1.txt con el siguiente contenido:
Hello Programmer!!! Learn NodeJS with GeeksforGeeks
Cree un archivo sync.js con el siguiente código:
// Write JavaScript code var fs = require("fs"); var filedata = fs.readFileSync('inputfile1.txt'); console.log(filedata.toString()); console.log("End of Program execution");
Explicación: la biblioteca fs está cargada para manejar operaciones relacionadas con el sistema de archivos. La función readFileSync() es síncrona y bloquea la ejecución hasta que finaliza. La función bloquea el programa hasta que lee el archivo y solo entonces procede a finalizar el programa
Salida:
Ejemplo 2: Código para leer un archivo de forma asíncrona (código sin bloqueo) en Node.js. Cree un archivo de texto inputfile1.txt con el siguiente contenido.
Hello Programmer!!! Learn NodeJS with GeeksforGeeks
Cree un archivo async.js con el siguiente código:
// Write a JavaScript code var fs = require("fs"); fs.readFile('inputfile1.txt', function (ferr, filedata) { if (ferr) return console.error(ferr); console.log(filedata.toString()); }); console.log("End of Program execution");
Explicación: la biblioteca fs está cargada para manejar operaciones relacionadas con el sistema de archivos. La función readFile() es asíncrona y el control regresa inmediatamente a la siguiente instrucción en el programa mientras la función sigue ejecutándose en segundo plano. Se pasa una función de devolución de llamada que se llama cuando finaliza la tarea que se ejecuta en segundo plano.
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyashah707 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA