Node.js – util.callbackify() 方法

该方法将异步函数作为参数(或带有 Promise 的函数)并返回具有回调样式的函数。回调将拒绝原因作为第一个参数(或在 Promise 的情况下为 null)和解析值作为第二个参数。util.callbackify()

语法

util.callbackify(function)

参数

  • function - 回调所需的async_function的输入参数。

示例 1

创建一个文件“ callbackify.js ”并复制以下代码片段。创建文件后,使用命令“ node callbackify.js ”运行此代码。

// util.callbackify() 演示示例

// 导入 util 模块

const util = require('util');

// 定义一个简单的异步函数

async function async_fn() {

   return 'Welcome to Turoials Point !!!';

}

// 使用异步函数定义 util.callbackify()

const callbackFunction = util.callbackify(async_fn);

// 消费回调

callbackFunction((err, ret) => {

   if (err) throw err;

   console.log(ret);

});

输出结果
C:\home\node>> node callbackify.js

Welcome to Turoials Point !!!

示例 2

如果在执行函数时发生任何错误或异常,回调将抛出“未捕获的异常”事件。如果没有处理回调,它将退出。让我们尝试callbackify()使用具有空参数的 Promise的函数。

// util.callbackify() 演示示例

// 导入 util 模块

const util = require('util');

// 定义一个简单的 Promise 函数

function async_fn() {

   return Promise.reject(null);

}

// 定义回调函数

const callbackFunction = util.callbackify(async_fn);

callbackFunction((err, ret) => {

   // 承诺将被 'null' 拒绝,因为它被包装了

   // 带有错误并且错误消息存储在“原因”中

   err && err.hasOwnProperty('reason') &&err.reason=== null;

   // 真(因为承诺有错误)

   console.log(err);

});

输出结果
C:\home\node>> node callbackify.js

{ Error [ERR_FALSY_VALUE_REJECTION]: Promise was rejected with falsy value

   atprocess._tickCallback(internal/process/next_tick.js:63:19)

   at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)

   at startup (internal/bootstrap/node.js:283:19)

   at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3) reason: null }

以上是 Node.js – util.callbackify() 方法 的全部内容, 来源链接: utcz.com/z/361442.html

回到顶部