Una función de controlador de devolución de llamada en Node.js es una forma de manejar algo después de que se completa una operación en particular. Es una de las formas de manejar el código asíncrono que tarda mucho tiempo en producir el resultado, por lo que podemos llamar al controlador de devolución de llamada con el error, si lo hay, y el resultado de la operación asíncrona.
Las funciones del controlador de devolución de llamada siguen la convención de error primero que es:
- El primer argumento del controlador de devolución de llamada debe ser el error y el segundo argumento puede ser el resultado de la operación.
- Al llamar a la función de devolución de llamada si hay un error, podemos llamarla como devolución de llamada (err) , de lo contrario, podemos llamarla como devolución de llamada (nulo, resultado) .
Sintaxis:
const func = (arg1, agr2, ..., argN, callback) => { // code logic } func(a, b, ..., n, (err, result) => { // code logic })
Configuración del proyecto
Paso 1: Instale Node.js si aún no lo ha hecho.
Paso 2: Cree una carpeta para su proyecto y cd (cambiar de directorio) en ella. Cree un nuevo archivo llamado app.js dentro de esa carpeta. Ahora, inicialice un nuevo proyecto Node.js con configuraciones predeterminadas usando el siguiente comando.
npm init -y
Estructura del proyecto: después de seguir los pasos, la estructura de su proyecto se verá así.
Ejemplo: en el ejemplo de código que se menciona a continuación, hemos creado una función que realiza la operación de división. Para simular una operación asíncrona, hemos utilizado el método setTimeout() que llama al controlador de devolución de llamada después de un segundo. El controlador de devolución de llamada se llama con la instancia de error como el único argumento cuando el divisor es cero; de lo contrario, la devolución de llamada se llama con nulo como primer argumento y el resultado de la división como segundo argumento.
app.js
const divide = (a, b, callback) => { setTimeout(() => { if (b === 0) { callback(new Error('Division by zero error')); } else { callback(null, a / b); } }, 1000); }; // Our callback handler expects error // as first argument and the result // of division as second argument. divide(5, 2, (err, result) => { // We check if the error exists then we // print the error message and return if (err) { return console.log(err.message); } // We print the result if there is no error console.log(`The result of division is ${result}`); }); // In this cases our callback handler // will be called with an error Instance // as the divisor is zero divide(5, 0, (err, result) => { if (err) { return console.log(err.message); } console.log(`The result of division is ${result}`); });
Paso para ejecutar la aplicación: puede ejecutar su archivo app.js usando el siguiente comando en la línea de comando.
node app.js
Producción:
Publicación traducida automáticamente
Artículo escrito por shivamsingh00141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA