El método util.callbackify() es una interfaz de programación de aplicaciones incorporada del módulo util que se utiliza para ejecutar una función asíncrona y obtener una devolución de llamada en node.js.
Sintaxis:
util.callbackify( async_function )
Parámetros: este método acepta un solo parámetro como se mencionó anteriormente y se describe a continuación.
- async_function: Es un parámetro requerido, significa una función asíncrona original.
Valor de retorno: devuelve una promesa como una función de estilo de devolución de llamada de error primero. que toma (err, ret) => {} como parámetro, cuyo primer argumento es error o motivo de rechazo, posiblemente nulo (cuando se resuelve la promesa), y el segundo argumento es el valor resuelto.
Los siguientes ejemplos ilustran el uso del método util.callbackify() en Node.js:
Ejemplo 1:
javascript
// Node.js program to demonstrate the // util.callbackify() Method // Allocating util module const util = require('util'); // Async function to be called // from util.callbackify() method async function async_function() { return 'message from async function'; } // Calling callbackify() const callback_function = util.callbackify(async_function); // Listener for callback_function callback_function((err, ret) => { if (err) throw err; console.log(ret); });
Producción:
message from async function
Ejemplo 2:
javascript
// Node.js program to demonstrate the // util.callbackify() Method // Allocating util module const util = require('util'); // Async function to be called // from util.callbackify() method async function async_function() { return Promise.reject(new Error( 'this is an error message!')); } // Calling callbackify() const callback_function = util.callbackify(async_function); // Listener for callback_function callback_function((err, ret) => { // If error occurs if (err && err.hasOwnProperty('reason') && err.reason === null) { // Printing error reason console.log(err.reason); } else { console.log(err); } });
Producción:
Error: this is an error message! at async_function (C:\nodejs\g\util\callbackify_2.js:6:25) at async_function (util.js:356:13) at Object. (C:\nodejs\g\util\callbackify_2.js:12:1) at Module._compile (internal/modules/cjs/loader.js:776:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Function.Module.runMain (internal/modules/cjs/loader.js:829:12) at startup (internal/bootstrap/node.js:283:19)
Nota: El programa anterior se compilará y ejecutará utilizando el comando node filename.js.
Referencia: https://nodejs.org/api/util.html#util_util_callbackify_original