util模块里的常用工具
1.util.callbackify(original)
将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数,例如将 (err, value) => … 回调作为最后一个参数。 在回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。
例如:
const util = require('util');
async function hello(){
return 'hello world'
}
let helloCb = util.callbackify(hello);
helloCb((err,res) => {
if (err) throw err;
console.log(res)
})
运行结果:
2.util.promisify(original)
传入一个遵循常见的错误优先的回调风格的函数(即以 (err, value) => … 回调作为最后一个参数),并返回一个返回 promise 的版本。
例如:
const util = require('util');
const fs = require('fs');
let stat = util.promisify(fs.stat);
stat('./utilTest.js').then((data) => {
console.log(data);
}).catch((err) => {
console.log(err);
})
运行结果:
用async和await来写也可以:
const util = require('util');
const fs = require('fs');
let stat = util.promisify(fs.stat);
async function statFn(){
try{
let stats = await stat('./utilTest.js');
console.log(stats);
}catch(err){
console.log(err);
}
}
statFn();
运行结果和上面是一样的。
3.util.types.isDate(value)
判断是否为Date数据。
例如:
console.log(util.types.isDate(new Date()));
运行结果: