如何实时更新节点控制台应用程序中的值?

时间:2017-11-01 03:16:50

标签: node.js console

我有以下代码:

let counter = 0;
function printProgress(){
    // process.stdout.write('\x1B[2J\x1B[0f');
    console.log("Count is: " + counter);
    counter++;
}

setInterval(function(){
  printProgress();
}, 1000)

产生如下输出:

Count is: 0
Count is: 1
Count is: 2
etc...

...取消注释

process.stdout.write('\x1B[2J\x1B[0f');

...清除屏幕并提供更新计数器值的外观(我想要的但不是真的)。我不是每次都清除屏幕,而是如何实时更新/显示计数器值?

3 个答案:

答案 0 :(得分:0)

这是试试吧

let counter = 0;
function printProgress() {
  process.stdout.clearLine();
  process.stdout.cursorTo(0);
  process.stdout.write('Count is: ' + counter);
  counter++;
}

setInterval(function() {
  printProgress();
}, 1000);

答案 1 :(得分:0)

尝试使用jetty

var Jetty = require("jetty");

var jetty = new Jetty(process.stdout);

jetty.clear();


let counter = 0;
function printProgress(){
  jetty.moveTo([0, 7]).text(counter.toString())
  counter++;
}

jetty.text("count: 0")
setInterval(function(){
  printProgress()
}, 1000)

此外,您可以使用Jetty在控制台上执行许多不同的操作。它支持不同的颜色,格式和样式。

答案 2 :(得分:0)

使用log-update

const logUpdate = require('log-update');

const frames = ['-', '\\', '|', '/'];
let i = 0;

setInterval(() => {
    const frame = frames[i = ++i % frames.length];

    logUpdate(
`
        ♥♥
   ${frame} unicorns ${frame}
        ♥♥
`
    );
}, 80);