util工具

本章的目的也是为了熟悉一下内部可以使用的api,按照使用场景来归类,util总览:

util.promisify

让一个遵循异常优先的回调风格的函数,即(err, value) => ...,异常优先即err为回调的第一个参数

符合这种形式的内部模块有

const fs = require('fs').promises
fs.readFile().then().catch()

另外,bluebird包也支持promise化,例如

const Promise = require('bluebird')
Promise.promisifyAll(fs)

fs.readFileAsync().then().catch()

它是在原有的基础上再增加的Async后缀名的promise方法

如果在项目中使用除了fs之外的模块,更倾向于用bluebird去做Promisify

util.inspect

返回 object 的字符串表示

const example = {
    name: 'ym',
    age: 18
}
console.log(util.inspect(example))
// 会以字符串的形式输出 { name: 'ym', age: 18 }

util.deprecate

将每个方法包装一层输出警告,警告的信息自定义,code为废弃的 API 列表

const util = require('util')

const a = util.deprecate(() => {
  console.log('function self')
}, '该方法即将被弃用', 'DEP0001')

a()

util.format

返回一个格式化后的字符串

util.format('%s:%s', 'foo');
// 返回: 'foo:%s'

util.types

提供一系列方法来验证某些类型,其中常用的有

util.types.isAsyncFunction()
util.types.isBooleanObject()
util.types.isNumberObject()
util.types.isStringObject()
util.types.isDate()
util.types.isPromise()
util.types.isNativeError()