Node.js API详解之 util模块用法实例分析(2)

可以通过 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'时有效。

textDecoder.decode([input[, options]])

说明:

解码input并返回一个字符串。
input: 待解码数据
options.stream: 如果需要额外的数据块,设置为true。默认为false。

textDecoder.encoding

说明:

返回textDecoder实例支持的编码。

textDecoder.fatal

说明:

返回textDecoder实例的fatal属性,

textDecoder.ignoreBOM

说明:

返回解码结果是否包含字节顺序标记

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/84f8399a1ee8bf12e587ac0ef8655dfb.html