protocol nodejs node debug app node.js

node.js - debug - Stdout flush para NodeJS?



node js npm (4)

En las versiones más recientes de NodeJS, puede pasar una devolución de llamada a .write() , que se llamará una vez que se .write() los datos:

sys.stdout.write(''some data'', () => { console.log(''The data has been flushed''); });

Esto es exactamente lo mismo que verificar el resultado de .write() y registrarse en el evento de drain :

var write = sys.stdout.write(''some data''); if (!write) { sys.stdout.once(''drain'', () => { console.log(''The data has been flushed''); }); }

¿Hay alguna descarga de stdout para nodejs como Python u otros idiomas?

sys.stdout.write(''some data'') sys.stdout.flush()

En este momento solo vi process.stdout.write() para nodejs.


Hay otra función stdout que para borrar la última salida al terminal, que es una especie de trabajo como la flush

function flush() { process.stdout.clearLine(); process.stdout.cursorTo(0); } var total = 5000; var current = 0; var percent = 0; var waitingTime = 500; setInterval(function() { current += waitingTime; percent = Math.floor((current / total) * 100); flush(); process.stdout.write(`downloading ... ${percent}%`); if (current >= total) { console.log("/nDone."); clearInterval(this); } }, waitingTime);

cursorTo moverá el cursor a la posición 0 que es el punto de inicio

use la función de flush antes de stdout.write porque borrará la pantalla, si coloca después no verá ningún resultado


write devuelve true si los datos se han vaciado. Si devuelve false , puede esperar el evento de ''drenaje''.

Creo que no hay flush , porque sería una operación de bloqueo.


process.stdout es un objeto WritableStream , y el método WritableStream.write() vacía automáticamente la secuencia (a menos que se haya ocultado explícitamente). Sin embargo, devolverá verdadero si la descarga fue exitosa, y falso si el búfer del núcleo estaba lleno y no puede escribir todavía. Si necesita escribir varias veces seguidas, debe manejar el evento de drain .

Consulte la documentación para write .