可以通过 util.inspect.styles 和 util.inspect.colors 属性全局地自定义 util.inspect 的颜色输出(如果已启用)。
预定义的颜色代码有:white、grey、black、blue、cyan、green、magenta、red 和 yellow。
还有 bold、italic、underline 和 inverse 代码。
颜色样式使用 ANSI 控制码,可能不是所有终端都支持。
demo:
const util = require('util'); console.log(util.inspect.styles); // { special: 'cyan', // number: 'yellow', // boolean: 'yellow', // undefined: 'grey', // null: 'bold', // string: 'green', // symbol: 'green', // date: 'magenta', // regexp: 'red' } console.log(util.inspect.colors); // { bold: [ 1, 22 ], // italic: [ 3, 23 ], // underline: [ 4, 24 ], // inverse: [ 7, 27 ], // white: [ 37, 39 ], // grey: [ 90, 39 ], // black: [ 30, 39 ], // blue: [ 34, 39 ], // cyan: [ 36, 39 ], // green: [ 32, 39 ], // magenta: [ 35, 39 ], // red: [ 31, 39 ], // yellow: [ 33, 39 ] }
util.inspect.custom说明:
util.inspect.custom是一个符号,可被用于声明自定义的查看函数:[util.inspect.custom](depth, opts)
自定义 inspect 方法的返回值可以使任何类型的值,它会被 util.inspect() 格式化。
demo:
const util = require('util'); class Box { [util.inspect.custom](depth, options) { return "myInspect"; } } const box = new Box(); console.log(util.inspect(box)); // 输出:myInspect
util.inspect.defaultOptions说明:
defaultOptions 值允许对 util.inspect 使用的默认选项进行自定义。
它需被设为一个对象,包含一个或多个有效的 util.inspect() 选项。 也支持直接设置选项的属性。
demo:
const util = require('util'); util.inspect.defaultOptions = { showHidden: true, depth:3 }; util.inspect.defaultOptions.breakLength = 30; console.log(util.inspect.defaultOptions); // { showHidden: true, // depth: 3, // colors: false, // customInspect: true, // showProxy: false, // maxArrayLength: 100, // breakLength: 30 }
util.promisify(original)说明:
让一个遵循通常的 Node.js error first回调风格的函数,回调函数是最后一个参数, 返回一个返回值是一个 promise 版本的函数。
demo:
const util = require('util'); const fs = require('fs'); const stat = util.promisify(fs.stat); stat('.').then((stats) => { // Do something with `stats` }).catch((error) => { // Handle the error. });
util.promisify.custom说明:
使用util.promisify.custom符号可以自定义promisified功能。
demo:
const util = require('util'); function doSomething(foo, callback) { // ... } doSomething[util.promisify.custom] = function(foo) { return getPromiseSomehow(); }; const promisified = util.promisify(doSomething); console.log(promisified === doSomething[util.promisify.custom]); // 输出: true
类:util.TextEncoder说明:
该类用来对文本进行编码
textEncoder.encode([input])说明:
对input字符串进行编码并返回一个Uint8Array包含编码字节的字符串
textEncoder.encoding说明:
TextEncoder实例支持的编码。总是设置为'utf-8'。
demo:
const encoder = new TextEncoder(); const uint8array = encoder.encode('this is some data'); console.log(encoder.encoding) //utf-8
类:util.TextDecoder说明:
该类用来解析编码后的文本
new TextDecoder([encoding[, options]])说明:
创建一个TextDecoder实例。
encoding: 编码方式,默认'utf-8′
options: 选项
fatal: 解码发生的错误将导致 TypeError被抛出。默认为 false
ignoreBOM: 解码结果中是否会包含字节顺序标记。默认为false。仅当encoding的值为'utf-8','utf-16be'或'utf-16le'时有效。
说明:
解码input并返回一个字符串。
input: 待解码数据
options.stream: 如果需要额外的数据块,设置为true。默认为false。
说明:
返回textDecoder实例支持的编码。
textDecoder.fatal说明:
返回textDecoder实例的fatal属性,
textDecoder.ignoreBOM说明:
返回解码结果是否包含字节顺序标记