NodeJS Console
console.log 同步还是异步取决于与谁相连和 os
,不过一般情况下的实现都是如下 ( 6.x 源代码 ),其中 this._stdout
默认是 process.stdout
:
// As of v8 5.0.71.32, the combination of rest param, template string
// and .apply(null, args) benchmarks consistently faster than using
// the spread operator when calling util.format.
Console.prototype.log = function(...args) {
this._stdout.write(`${util.format.apply(null, args)}\n`);
};
自己实现一个 console.log 可以参考如下代码:
let print = (str) => process.stdout.write(str + '\n');
print('hello world');
注意: 该代码并没有处理多参数, 也没有处理占位符,即 util.format 的功能。
console.log.bind(console)
问题
// 源码出处 https://github.com/nodejs/node/blob/v6.x/lib/console.js
function Console(stdout, stderr) {
// ... init ...
// bind the prototype functions to this Console instance
var keys = Object.keys(Console.prototype);
for (var v = 0; v < keys.length; v++) {
var k = keys[v];
this[k] = this[k].bind(this);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: NodeJS Stream
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论