I've been searching how to do it in other languages and I've found that I have to use the special character \b to remove the last character. (how-do-i-erase-printed-characters-in-a-console-applicationlinux)
This doesn't work for node.js in multiple calls to console.log ();
If I write a single log:
console.log ("abc\bd");
I get the result: abd
But if I write:
console.log ("abc"); console.log ("\bd");
I get the result:
abc
d
My goal is to print a waiting message like:
Waiting
Waiting.
Waiting..
Waiting...
and again:
Waiting
Waiting.
etc
all in the same line.
"\b" is ASCII backspace. Print it to back up one char. Thanks, this works perfectly.
Try backspace \b or erase the whole line and print it again. Show activity on this post. Show activity on this post.
(using \r)
The Correct Answer is Backspace button. The Backspace key or Backspace key is a keyboard key that deletes any character before the cursor's current position or the left.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With