1. util.promisify(original):
将基于回调的异步函数转换为返回 Promise 的异步函数。
const util = require('util');
const fs = require('fs');
const readFileAsync = util.promisify(fs.readFile);
readFileAsync('example.txt', 'utf-8')
.then(data => console.log(data))
.catch(err => console.error(err));
2. util.format(format[, ...args]):
使用类似于 printf 的格式化字符串创建字符串。
const util = require('util');
const formattedString = util.format('%s is %d years old', 'Alice', 30);
console.log(formattedString); // 输出: Alice is 30 years old
3. util.inspect(object[, options]):
将对象转换为字符串,常用于调试和日志输出。
const util = require('util');
const obj = { name: 'John', age: 25, city: 'New York' };
console.log(util.inspect(obj)); // 输出: { name: 'John', age: 25, city: 'New York' }
4. util.inherits(constructor, superConstructor):
继承原型方法,已废弃,推荐使用 ES6 的 class 和 extends。
const util = require('util');
function Animal(name) {
this.name = name;
}
function Dog(name, breed) {
Animal.call(this, name);
this.breed = breed;
}
util.inherits(Dog, Animal);
const myDog = new Dog('Buddy', 'Golden Retriever');
console.log(myDog.name); // 输出: Buddy
推荐使用 ES6 的 class 和 extends 来实现继承:
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
}
const myDog = new Dog('Buddy', 'Golden Retriever');
console.log(myDog.name); // 输出: Buddy
5. util.promisify.custom:
用于自定义 util.promisify 返回的 Promise 对象的属性名。
const util = require('util');
const fs = require('fs');
const customPromisify = util.promisify.custom;
const customReadFileAsync = (filename, encoding) => {
return new Promise((resolve, reject) => {
fs.readFile(filename, encoding, (err, data) => {
if (err) reject(err);
resolve(data);
});
});
};
util.promisify.custom = customPromisify;
const customReadFile = util.promisify(customReadFileAsync);
customReadFile('example.txt', 'utf-8')
.then(data => console.log(data))
.catch(err => console.error(err));
这些是 util 模块中一些常用的工具函数。Node.js 的 util 模块还包含其他一些工具函数,用于处理对象、错误、事件等。详细信息可以参考 Node.js 官方文档。
转载请注明出处:http://www.zyzy.cn/article/detail/4743/Node.js