今天看了一个 npm 包的源码,里面用到了 process.stdout.write
这个 API 。咋一看感觉跟 Java 的 System.out.print
有点类似,但是 JS 打印的语句难道不是 console.log
么?于是查了下,发现 console.log
原来底层就是基于 process.stdout.write
实现的:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
这边有两个注意点:
1. process.stdout.write
函数只接受字符串,如果传别的类型就会报错。而 console.log
可以接收任意类型,因为在输出前经过了 format
函数格式化;
可以参考 Node.js 官方文档:http://nodejs/api/util.html#util_util_format_format_args
2. process.stdout.write
函数默认不会换行,而 console.log
函数因为在最后拼接了一个换行符 \n
,导致每次输出都会换行;
在 npm 包源码中,因为不希望每次都换行,而是在一行内输出,因此用了
process.stdout.write
更多推荐
nodejs 中的 process.stdout.write
发布评论