How to erase characters printed in console
Now you could use readline
library and its API to do this stuff.
There are functions available for process.stdout
:
var i = 0; // dots counter
setInterval(function() {
process.stdout.clearLine(); // clear current text
process.stdout.cursorTo(0); // move cursor to beginning of line
i = (i + 1) % 4;
var dots = new Array(i + 1).join(".");
process.stdout.write("Waiting" + dots); // write text
}, 300);
It is possible to provide arguments to clearLine(direction, callback)
/**
* -1 - to the left from cursor
* 0 - the entire line // default
* 1 - to the right from cursor
*/
Update Dec 13, 2015: although the above code works, it is no longer documented as part of process.stdin
. It has moved to readline
The easiest way to overwrite the same line is
var dots = ...
process.stdout.write('Progress: '+dots+'\r');
the \r
is the key. It will move the cursor back to the beginning of the line.