1. ホーム
  2. node.js

コンソールに表示された文字を消す方法

2023-08-15 23:16:28

質問

他の言語でのやり方を調べてみたところ、最後の文字を削除するために特殊文字であるⒶを使用しなければならないことがわかりました。( How-do-Erase-printed-characters-in-a-console-applicationlinux )

node.jsの場合、console.log()を複数回呼び出すと動作しない。

ログを1つだけ書くと

console.log ("abc\bd");

結果: abd

しかし、私が書くと

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

結果が出ます。

abc

d

私の目標は、次のような待ち受けメッセージを表示することです。

待機中

待機中です。

待っている。

待っている...

を、もう一度。

待つこと

待機中です。

をすべて同じ行にする。

どのように解決するのですか?

のために利用できる関数があります。 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);

に引数を与えることが可能です。 clearLine(direction, callback)

/**
 * -1 - to the left from cursor
 *  0 - the entire line // default
 *  1 - to the right from cursor
 */

更新 2015年12月13日: 上記のコードは動作しますが、もはやドキュメントでは process.stdin . に移動しました。 readline