Как стереть символы, напечатанные в консоли



Я искал как это сделать на других языках, и я обнаружил, что я должен использовать специальный символ B, чтобы удалить последний символ. (как-же-я-стирать-напечатанные-символов-в-консоли-applicationlinux)



это не работает для узла.js в нескольких вызовах консоли.log ();



Если я пишу один журнал:



console.log ("abcbd");


Я получаю результат: abd



но если я напишу:



console.log ("abc");
console.log ("bd");


Я получаю результат:



abc

d



моя цель-напечатать сообщение ожидания, например:



ожидание

Ожидание.

Ожидание..

Ожидание...



и снова:



ожидание

Ожидание.

и т. д.



все в одной строке.

481   4  

4 ответов:

есть функции, доступные для 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);

обновление Dec 13, 2015: хотя приведенный выше код работает, он больше не документируется как часть process.stdin. Он переместился в readline

теперь вы можете использовать readline библиотеки и ее API чтобы сделать это.

самый простой способ перезаписать одну и ту же строку -

var dots = ...
process.stdout.write('Progress: '+dots+'\r');

the \r - это ключ. Он переместит курсор обратно в начало строки.

попробуйте, переместив \r в начале строки, это сработало на Windows для меня:

for (var i = 0; i < 10000; i+=1) {
    setTimeout(function() {
        console.log(`\r ${i}`);
    }, i);
}

Comments

    Ничего не найдено.