util
来源:Node.js
util是Node.js内部提供的一系列实用或者工具类型的API,方便快速开发
util.promisify
将具有回调函数的方法改造成promise写法
1 | const { exec } = require('node:child_process') |
原理就是这样
1 | // 接收一个具有回调函数参数的函数 |
但输出的结果却是{ '0': 'v18.16.0\n', '1': '' }
,即这样无法获取values的key值
因为Node内部使用kCustomPromisifyArgsSymbol
这个symbol获取key,但这个symbol没有暴露给用户
util.callbackify
正好相反,将promise改造成回调函数写法
1 | const util = require('node:util') |
原理就是这样
1 | const callbackify = (fn) => { |
util.format
类似于C语言的printf
1 | const util = require('node:util') |
- %s:String,用于除BigInt、Object和-0外的所有值
- BigInt用n表示
- 没有用户定义的toString函数的对象使用具有选项
{ depth: 0, colors: false, compact: 3 }
的util.inspect()
进行检查
- %d:Number,用于除BigInt和Symbol之外的所有值
- %i:
parseInt(value, 10)
,用于除BigInt和Symbol之外的所有值 - %f:
parseFloat(value)
,用于除Symbol之外的所有值 - %j:JSON,如果参数包含循环引用,则替换为字符串
'[Circular]'
- %o:Object,具有通用JavaScript对象格式的对象的字符串表示形式
- 类似于具有选项
{ showHidden: true, showProxy: true }
的util.inspect()
- 这将显示完整的对象,包括不可枚举的属性和代理
- 类似于具有选项
- %O:Object,具有通用JavaScript对象格式的对象的字符串表示形式
- 类似于没有选项的
util.inspect()
- 这将显示完整的对象,但不包括不可枚举的属性和代理
- 类似于没有选项的
- %c:CSS,此说明符会被忽略,将跳过任何传入的 CSS
- %%:单个百分号 (‘%’),这不消费参数
评论