【发布时间】:2014-08-08 00:08:43
【问题描述】:
我需要写在同一行,其他行同时写。
var i = 1;
write();
function write() {
if (i == 6) return;
setTimeout(function() {
console.log('-------------');
process.stdout.write('Downloading ' + i + '% complete... \r');
i++;
write();
}, 100);
}
我得到了什么:
-------------
-------------% complete...
-------------% complete...
-------------% complete... Downloading 5% complete...
我需要什么:
-------------
Downloading 5% complete...
-------------
-------------
-------------
-------------
我更喜欢在没有任何模块的情况下执行此操作。
这里有各种各样的话题在谈论这个,但没有一个能解释我想要怎么做。
我觉得我第一次写行的时候需要保存光标位置,然后下次写,我必须把光标移动到保存的行对吗?
【问题讨论】:
-
不禁注意到
-------------是13字符,Downloading 5是13字符,即您的---s 写在log的顶部以前的时间。 (这是因为"\r"不是您想要的新行字符;)) -
@PaulS。那将是一个很好的答案。
-
感谢 Paul S. 的回答,现在我明白这是如何工作的了。
标签: javascript node.js console line