Node.js: ¿imprimir en la consola sin una nueva línea al final?
¿Existe algún método para imprimir en la consola sin una nueva línea al final? La documentaciónconsole
del objeto no dice nada al respecto:
console.log()
Imprime en la salida estándar con una nueva línea. Esta función puede tomar múltiples argumentos de
printf()
forma similar. Ejemplo:
console.log('count: %d', count);
Si no se encuentran elementos de formato en la primera cadena,
util.inspect
se utiliza en cada argumento.
Puedes usar process.stdout.write()
:
process.stdout.write("hello: ");
Consulte los documentos para obtener más detalles .
Además, si desea sobrescribir mensajes en la misma línea, por ejemplo en una cuenta regresiva, puede agregarlos \r
al final de la cadena.
process.stdout.write("Downloading " + data.length + " bytes\r");
Como expansión/mejora de la brillante adición realizada por @rodowi arriba con respecto a poder sobrescribir una fila:
process.stdout.write("Downloading " + data.length + " bytes\r");
Si no desea que el cursor del terminal esté ubicado en el primer carácter, como vi en mi código, considere hacer lo siguiente:
let dots = ''
process.stdout.write(`Loading `)
let tmrID = setInterval(() => {
dots += '.'
process.stdout.write(`\rLoading ${dots}`)
}, 1000)
setTimeout(() => {
clearInterval(tmrID)
console.log(`\rLoaded in [3500 ms]`)
}, 3500)
Al colocar \r
delante de la siguiente declaración de impresión, el cursor se reinicia justo antes de que la cadena de reemplazo sobrescriba la anterior.