node.js中“ process.stdout.write”和“ console.log”之间的区别?

JavaScript Node.js

小哥达蒙卡卡西

2020-03-19

node.js中的“ process.stdout.write”和“ console.log”之间有什么区别?

编辑:使用console.log的变量显示了很多不可读的字符,而使用process.stdout.write的显示了一个对象。

这是为什么?

第2205篇《node.js中“ process.stdout.write”和“ console.log”之间的区别?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
镜风 2020.03.19

简单的区别是: console.log()方法自动添加换行符。这意味着如果我们遍历并打印结果,则每个结果都将以新行打印。

process.stdout.write()方法不会追加换行符。用于打印图案。

蛋蛋古一Eva 2020.03.19

在此情况下,另一个重要区别是process.stdout.clearLine()process.stdout.cursorTo(0)

如果您只想在一行中显示下载或处理的百分比,这将很有用。如果使用clearLine(),cursorTo()console.log()不能使用,因为它还会在文本后附加\ n。只需尝试以下示例:

var waitInterval = 500;
var totalTime = 5000;
var currentInterval = 0;

function showPercentage(percentage){
    process.stdout.clearLine();
    process.stdout.cursorTo(0);
    console.log(`Processing ${percentage}%...` ); //replace this line with process.stdout.write(`Processing ${percentage}%...`);
}

var interval = setInterval(function(){
 currentInterval += waitInterval;
 showPercentage((currentInterval/totalTime) * 100);
}, waitInterval);

setTimeout(function(){
 clearInterval(interval); 
}, totalTime);

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android