How to erase characters printed in console

node.js

Solution

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`

Problem

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.

Original source

Related problems