Node.js之until模块

一、util模块的引入

const { format,promisify,log } = require('util');

二、util模块方法

1. format方法

⏰ format方法的作用有些类似于C语言中的printf方法。该方法将第一个参数值作为一个格式化字符串,将其他参数值作为该格式化字符串中所使用的各种参数,返回一个经过格式化处理后的字符串。

util.format(format,[...])

在format方法中,可以使用一个或多个参数,不限定参数个数。第一个参数为一个格式化字符串,该格式化字符串中使用零个或多个参数,参数个数等于format方法中所使用的除了format参数之外的其他参数个数,方法返回一个经过格式化处理后的字符串。

util.format('您输入了%d个参数,参数值分别为%s,%s与%s。',3,'foo','bar','baz');

在格式化字符串中,可以使用的参数指定符号如下所示

  • %s:用于指定字符串参数。
  • %d:用于指定数值参数,包括整数及浮点数。
  • %j:用于指定一个JSON对象。
  • %%:用于指定一个百分号。

2. debug方法

⏰ debug方法为一个同步方法,该方法阻塞当前线程,将一个字符串作为标准错误输出流进行输出,

util.debug(string)

3. error方法

⏰ error方法为一个同步方法,该方法阻塞当前线程,将一个数组中的多个字符串作为标准错误输出流进行输出

util.error([...])

4. puts方法

⏰ puts方法为一个同步方法,该方法阻塞当前线程,将一个数组中的多个字符串作为标准输出流进行输出,在输出这些字符串后产生一个新行。

util.puts([...])

5. print方法

⏰ print方法为一个同步方法,该方法阻塞当前线程,将一个数组中的多个字符串作为标准输出流进行输出,在输出这些字符串后不产生一个新行

util.print([...])

6. log方法

⏰ log方法用于将一个字符串作为标准输出流进行输出,在该字符串前输出系统当前时间。

util.log(string)

7. inspect方法

⏰ inspect方法用于返回一个字符串,该字符串中包含了一个对象的信息,在调试应用程序的过程中该方法将变得非常有用。

util.inspect(object,[options])

参数:

  • object:参数值为一个对象,用于指定需要被查看信息的对象。
  • options:参数也为一个对象,用于指定查看对象信息时所使用的各种选项,该对象中可使用的属性及属性值
    • showHidden:该属性为一个布尔值类型的属性,当属性值为true时,该对象信息中包含该对象的不可枚举的属性及属性值,当属性值为false时,该对象信息中不包含该对象的不可枚举的属性及属性值。默认值为false。
    • depth:属性值为一个整数。当被查看的对象信息具有阶层关系(当被查看对象的属性值为一个对象,该属性值对象的某个属性值又是一个对象……这时被查看的对象信息就具有了阶层关系)时,该属性值指定被查看的对象信息的深度。默认值为2。当不限定深度时,需要将属性值指定为null。
    • colors:该属性为一个布尔值类型的属性,当属性值为true时,在输出该对象信息时将对对象的各种属性值应用各种颜色,当属性值为false时,输出该对象信息时不对对象的各种属性值应用各种颜色。默认值为false。
    • customInspect:该属性为一个布尔值类型的属性,当属性值为true时,在查看对象信息时将调用对于被查看信息的对象自定义的Inspect方法,当属性值为false时,在查看对象信息时不调用对于被查看信息的对象自定义的Inspect方法。默认值为true。

8. isArray方法

⏰ isArray方法判断一个参数值是否为数组。

util.isArray(object)

9. isRegExp方法

⏰ isRegExp方法判断一个参数值是否为正则表达式。

util.isRegExp(object)

10. isDate方法

⏰ isDate方法判断一个参数值是否为日期类型。

util.isDate(object)

11. isError

⏰ isError方法判断一个参数值是否为错误对象。

util.isError(object)

12. inherits方法

⏰ inherits方法用于将一个父类的方法继承给该父类的子类。

util.inherits(constructor,superConstructor)

参数:

  • constructor:子类的构造函数
  • superConstructor:父类的构造函数

13. promisify 方法

⏰ 让一个异步函数返回一个promise对象,换言之,可以通过此方法,来实现异步转同步。

until.promisify(original)

参数:

  • original:一个异步函数

示例:

const readFileFunc = async() => {
    let data;
    try{
       data = await readFile('./index.html');
       console.log("通过async/await执行");
       console.log(data);
    }
    catch(e){
        console.log(e);
    }
}
readFileFunc();
const readFile = promisify(fs.readFile);
readFile("./index.html").then(data => {
    console.log("通过Promise执行");
    console.log(data);
}).catch(e => {
    console.log("error!")
})

返回:

PS E:\项目\nodejs> node util.js
通过Promise执行
<Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0d 0a 3c 68 74 6d 6c 20 6c 61 6e 67 3d 22 65 6e 22 3e 0d 0a 3c 68 65 61 64 3e 0d 0a 20 20 20 20 3c 6d 65 ... >
通过async/await执行
<Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0d 0a 3c 68 74 6d 6c 20 6c 61 6e 67 3d 22 65 6e 22 3e 0d 0a 3c 68 65 61 64 3e 0d 0a 20 20 20 20 3c 6d 65 ... >

posted on 2024-07-18 16:32  梁飞宇  阅读(9)  评论(0)    收藏  举报