node.js - 変数 - javascript 連想配列 削除 詰める




コンソールで印刷された文字を消去する方法 (4)

私は他の言語でそれを行う方法を探してきましたし、最後の文字を削除するために特殊文字\ bを使用する必要があることがわかりました。 ( how-do-i-erase-printed-characters-in-a-console-applicationlinux

これは、console.log()への複数の呼び出しでnode.jsでは機能しません。

私が単一のログを書く場合:

console.log ("abc\bd");

私は結果を得る:abd

しかし、私が書く場合:

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

私は結果を得る:

abc
d

私の目標は、次のような待機メッセージを印刷することです。

待っている
待っている。
待っている..
待っている...

そしてまた:

待っている
待っている。

すべて同じ行にある。


process.stdout利用可能な関数があり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);

2015年12月13日更新 :上記のコードは機能しますが、 process.stdin一部として文書化されなくなりました。 それはreadline移動しました


これは私のために働く:

process.stdout.write('\033c');
process.stdout.write('Your text here');

同じ行を上書きする最も簡単な方法は次のとおりです。

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

\rはキーです。 カーソルを行の先頭に戻します。


文字列の先頭に\ rを移動してみてください。これはWindows上で動作します:

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






node.js