Как стереть символы, напечатанные в консоли
Я искал как это сделать на других языках, и я обнаружил, что я должен использовать специальный символ B, чтобы удалить последний символ. (как-же-я-стирать-напечатанные-символов-в-консоли-applicationlinux)
это не работает для узла.js в нескольких вызовах консоли.log ();
Если я пишу один журнал:
console.log ("abcbd");
Я получаю результат: abd
но если я напишу:
console.log ("abc");
console.log ("bd");
Я получаю результат:
abc
d
моя цель-напечатать сообщение ожидания, например:
ожидание
Ожидание.
Ожидание..
Ожидание...
и снова:
ожидание
Ожидание.
и т. д.
все в одной строке.
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