Node.js: ¿imprimir en la consola sin una nueva línea al final?

Resuelto Evan Carroll asked hace 13 años • 10 respuestas

¿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.inspectse utiliza en cada argumento.

Evan Carroll avatar May 28 '11 03:05 Evan Carroll
Aceptado

Puedes usar process.stdout.write():

process.stdout.write("hello: ");

Consulte los documentos para obtener más detalles .

onteria_ avatar May 27 '2011 20:05 onteria_

Además, si desea sobrescribir mensajes en la misma línea, por ejemplo en una cuenta regresiva, puede agregarlos \ral final de la cadena.

process.stdout.write("Downloading " + data.length + " bytes\r");
defvol avatar Mar 09 '2012 04:03 defvol

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 \rdelante de la siguiente declaración de impresión, el cursor se reinicia justo antes de que la cadena de reemplazo sobrescriba la anterior.

mraxus avatar Dec 27 '2017 00:12 mraxus