¿Existe algún método para imprimir en la consola sin una nueva línea final? La documentación delconsole
objeto no dice nada al respecto:
console.log()
Imprime en stdout con nueva línea. Esta función puede tomar múltiples argumentos de forma
printf()
similar. Ejemplo:console.log('count: %d', count);
Si no se encuentran elementos formateados en la primera cadena, entonces
util.inspect
se usa en cada argumento.
node.js
console
console.log
Evan Carroll
fuente
fuente
console.log
estaba imprimiendo\n
literalmente cuando quería que imprimiera un personaje de nueva línea.` followed by an
, cuando quería generar un carácter real de nueva línea.Además, si desea sobrescribir mensajes en la misma línea, por ejemplo, en una cuenta regresiva, puede agregar '\ r' al final de la cadena.
fuente
process.stdout.write("Downloading " + data.length + " bytes\033[0G");
\033
con el literal hexagonal de\x1b
la siguiente manera:\x1b[0G
. (que funciona con código estricto y no estricto)En la consola de Windows (también en Linux), debe reemplazarlo
'\r'
con su código equivalente\033[0G
:Esto utiliza una secuencia de escape de terminal VT220 para enviar el cursor a la primera columna.
fuente
[\] 39
y el cursor se resalta en el primer carácter:var spinner = '|/-\\'.split('');process.stdout.write("["+this.randomElement(spinner)+"] "+message+"\033[0G");
man console_codes
(en Linux o en línea) y mi referencia favorita es www2.phys.canterbury.ac.nz/dept/docs/manuals/unix/DEC_4.0e_Docs/… (99% de su contenido aún funciona) . Solo advertencia: esté preparado para probar cualquier experimento en varias terminales diferentes antes de desplegarlo ampliamente.Como una expansión / mejora de la brillante adición realizada por @rodowi anteriormente con respecto a poder sobrescribir una fila:
Si no desea que el cursor del terminal se ubique en el primer carácter, como vi en mi código, considere hacer lo siguiente:
Al colocar
\r
delante de la siguiente declaración de impresión, el cursor se restablece justo antes de que la cadena de reemplazo sobrescriba la anterior.fuente
util.print también se puede usar. Leer: http://nodejs.org/api/util.html#util_util_print
Un ejemplo:
fuente
util.print
está en desuso ahora(node:7616) DeprecationWarning: util.print is deprecated. Use console.log instead.
Parece que hay muchas respuestas que sugieren:
Los registros de errores deben emitirse en:
En su lugar use:
Para cualquiera que se pregunte por qué
process.stdout.write('\033[0G');
no estaba haciendo nada, es porquestdout
está protegido y necesita esperardrain
evento ( más información ).Si la escritura devuelve,
false
se activará undrain
evento.fuente
Ninguna de estas soluciones funciona para mí,
process.stdout.write('ok\033[0G')
y solo uso'\r'
crear una nueva línea pero no sobrescribir en Mac OSX 10.9.2.EDITAR: tuve que usar esto para reemplazar la línea actual:
fuente
Recibí el siguiente error cuando uso el modo estricto:
La siguiente solución funciona ( fuente ):
fuente