Skip to content

util

types

判断相关的库

ts
const util = require('util')

console.log(util.types.isStringObject('foo'));//判断是否是String()创建的
方法 / 类型判断参数示例说明
isDate(value)new Date()判断是否 Date 对象
isMap(value)new Map()判断是否 Map
isSet(value)new Set()判断是否 Set
isRegExp(value)/abc/判断是否正则
isPromise(value)Promise.resolve()判断是否 Promise 对象
isAsyncFunction(value)async () => {}判断是否异步函数
isGeneratorFunction(value)function* () {}判断是否生成器函数
isNativeError(value)new Error()判断是否原生 Error
isBoxedPrimitive(value)new String('a') / new Number(1)判断是否包装类型(对象包装的基本类型)
isTypedArray(value)new Uint8Array()判断是否 TypedArray
isProxy(value)new Proxy({}, {})判断是否 Proxy 对象

promisify

把 Node 风格回调函数(err-first)转换为 Promise:

js
import fs from 'fs'
import util from 'util'

const readFileAsync = util.promisify(fs.readFile)

async function main() {
  const data = await readFileAsync('./test.txt', 'utf8')
  console.log(data)
}

main()

callbackify

把 Promise 函数变成回调函数(不常用):与promiseify效果相反

Node风格Callback

回调函数的第一个参数总是 错误对象,后面的参数才是成功数据。

js
function callback(err, data) {
  if (err) {
    // 处理错误
    return
  }
  // 正常处理 data
}