readstream readfilesync read nodejs node log example createreadstream commands node.js

node.js - readfilesync - readfile javascript



Cómo borrar caracteres impresos en consola. (5)

He estado buscando cómo hacerlo en otros idiomas y he encontrado que tengo que usar el carácter especial / b para eliminar el último carácter. ( how-do-i-erase-printed-characters-in-a-console-applicationlinux )

Esto no funciona para node.js en múltiples llamadas a console.log ();

Si escribo un solo registro:

console.log ("abc/bd");

Me sale el resultado: abd

Pero si escribo:

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

Me sale el resultado:

a B C
re

Mi objetivo es imprimir un mensaje de espera como:

Esperando
Esperando.
Esperando..
Esperando...

y otra vez:

Esperando
Esperando.
etc

todo en la misma linea


Ahora puedes usar la biblioteca readline y su API para hacer esto.


Esto funciona para mí:

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


Hay funciones disponibles para 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);

Actualización del 13 de diciembre de 2015: aunque el código anterior funciona, ya no se documenta como parte de process.stdin . Se ha movido a readline


La forma más fácil de sobrescribir la misma línea es

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

la /r es la clave. Moverá el cursor de nuevo al principio de la línea.


Pruebe moviendo la / r al principio de la cadena, esto funcionó en Windows para mí:

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