位置:电子教程 > Node.js在线教程 (如果看不到内容请使用360浏览器) 推荐学习资源
Node概要
Node.js 安装配置
安装开发工具vscode和配置汉化
Node.js 创建第一个应用
NPM 使用介绍
Node.js REPL(交互式解释器)
Node.js 回调函数
Node.js 事件循环
Node.js EventEmitter
Node.js Stream(流)
Node.js模块系统
Node.js 全局对象
console
Node.js 函数
Node.js 路由
Node.js 常用工具
Node.js GET/POST请求
当前阅读教程:Node.js在线教程 > util.callbackify
阅读(22555525)      收藏       赞(5685)      分享
上一篇: Node.js 常用工具 下一篇: util.inherits

util.callbackify(original) async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数,例如将 (err, value) => ... 回调作为最后一个参数。 在回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。

实例

const util = require('util');
 
async function fn() {
  return 'hello world';
}
const callbackFunction = util.callbackify(fn);
 
callbackFunction((err, ret) => {
  if (err) throw err;
  console.log(ret);
});

以上代码输出结果为:

D:
ode>node util01.js
hello world

回调函数是异步执行的,并且有异常堆栈错误追踪。 如果回调函数抛出一个异常,进程会触发一个 'uncaughtException' 异常,如果没有被捕获,进程将会退出。

null 在回调函数中作为一个参数有其特殊的意义,如果回调函数的首个参数为 Promise 拒绝的原因且带有返回值,且值可以转换成布尔值 false,这个值会被封装在 Error 对象里,可以通过属性 reason 获取。

function fn() {
  return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);
 
callbackFunction((err, ret) => {
  // 当 Promise 被以 `null` 拒绝时,它被包装为 Error 并且原始值存储在 `reason` 中。
  err && err.hasOwnProperty('reason') && err.reason === null;  // true
});

original async 异步函数。该函数返回传统回调函数。

 


上一篇: Node.js 常用工具 下一篇: util.inherits
计算机毕业设计作品网      毕业设计文档网      小程序教程网       毕业设计资料网  |         毕业设计定制QQ:45157718(微信同号)(备注:毕设)