[TOC] <br/><br/><br/> # <b style="color:#4F4F4F;">简介说明</b> 原文链接: - [util](https://github.com/nodejs/node/blob/main/doc/api/util.md) ``` 版本:util 作用:用于支持 Node.js 内部 API 的需求 ``` <br/> # <b style="color:#4F4F4F;">util</b> <br/> # <span style="color:#619BE4">*callbackify()</span> ***** 接受一个异步函数(或返回Promise的函数)并返回一个遵循错误优先回调样式的函数 <br/> # <span style="color:#619BE4">*promisify()</span> ***** 将传递的函数promis化 <br/> ### 示例内容 <span style="color:red;">1. 举例说明</span> ``` const { promisify } = require('util') const fs = require('fs') const statAsync = promisify(fs.stat) statAsync('.').then(stats => { // 拿到了正确的数据 }, err => { // 出现了异常 }) ``` <br/> # <span style="color:#619BE4">*inspect()</span> ***** 输出带有颜色和风格的内容 <br/> ### 参数说明 <b style="color:#808080;">object:</b> * 类型:对象 * 默认值:无 * 描述:对象 * 可选值:[ ] <b style="color:#808080;">options:</b> * 类型:对象 * 默认值:无 * 描述:可选参数 * 可选值:[ ] - showHidden:对象的不可枚举符号和属性是否将包含在格式化结果中 - depth:指定格式化对象时递归的次数 - colors:输出将使用ANSI颜色代码进行样式设置 - customInspect:是否允许自定义inspect的样式 - showProxy:Proxy inspection includes the target and handler objects - maxArrayLength:指定格式化时要包括的Array、TypedArray、Map、Set、WeakMap和WeakSet元素的最大数量 - maxStringLength:指定格式化时要包含的最大字符数 - breakLength:输入值跨多行分割的长度 - compact:是否紧密显示输出内容 - sorted:如果设置为true或函数,则对象的所有属性以及set和Map条目将在结果字符串中排序 - getters:如果设置为true,则检查getter - numericSeparator:如果设置为true,则使用下划线分隔所有bigint和数字中的每三位数字 <br/> # <span style="color:#619BE4">*formatWithOptions()</span> ***** 格式化输出内容,同时可以配置inspect参数选项 <br/> # <span style="color:#619BE4">*format()</span> ***** 格式化输出内容 <br/> # <span style="color:#619BE4">*debuglog() | debug()</span> ***** 创建一个函数,该函数根据 `NODE_DEBUG` 环境变量的存在将调试消息有条件地写入stderr <br/> ### 示例内容 <span style="color:red;">1. 举例说明</span> ``` // 环境变量NODE_DEBUG=foo的时候被打印输出 const debuglog = util.debuglog('foo') debuglog('hello from foo [%d]', 123) ``` <br/> # <span style="color:#619BE4">*deprecate()</span> ***** 用于装饰一个应该被弃用的方法或函数 <br/> # <span style="color:#619BE4">*inherits()</span> ***** 原型链式继承 <br/> ### 示例内容 <span style="color:red;">1. 举例说明</span> ``` var events=require('events'); var util=require('util'); function _base(){ this.emitter=new events.EventEmitter(this); }; util.inherits(_base,events.EventEmitter); //继承 _base.prototype.onEvent=function(eventName,callback){ this.emitter.on(eventName,callback); } _base.prototype.emitEvent=function(eventName,arg){ this.emitter.emit(eventName,arg); } module.exports=_base; ``` <br/> # <span style="color:#619BE4">*getSystemErrorName()</span> ***** 获取错误码对应的系统名称 <br/> # <span style="color:#619BE4">*getSystemErrorMap()</span> ***** 获取系统错误码和名称的映射对象表 <br/> # <span style="color:#619BE4">*isDeepStrictEqual()</span> ***** 两个对象是否深度严格相等 <br/> # <span style="color:#619BE4">[fut]-*parseArgs()</span> ***** 参数和配置解析器 <br/> # <span style="color:#619BE4">[fut]-*stripVTControlCharacters()</span> ***** 返回删除了任何ANSI转义代码的str <br/> # <span style="color:#619BE4">[fut]-*toUSVString()</span> ***** 用Unicode“替换字符”U+FFFD替换任何代理代码点(或等效地,任何未配对的代理代码单元)后返回字符串 <br/> # <b style="color:#4F4F4F;">util.types</b> <br/> # <span style="color:#619BE4">*isAnyArrayBuffer()</span> ***** 如果值是内置ArrayBuffer或SharedArrayBuffer实例,则返回true <br/> # <b style="color:#4F4F4F;">util.TextDecoder</b> <br/> # <span style="color:#619BE4">[new]-TextDecoder()</span> ***** WHATWG编码标准文本解码器API的实现 <br/> # <b style="color:#4F4F4F;">util.TextEncoder</b> <br/> # <span style="color:#619BE4">[new]-TextEncoder()</span> ***** WHATWG编码标准TextEncoder API的实现 <br/>