Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

208
Visualizações
Node.js no puede redirigir toda la salida del emisor de eventos

Tengo un archivo JavaScript muy simple, c.js :

 const cliProgress = require("cli-progress"); const bar = new cliProgress.SingleBar( { stream: process.stdout }, cliProgress.Presets.shades_classic ); bar.on('start', () => { console.log('started'); }); bar.start(100, 0); let progress = 0; function update(){ progress += 20; bar.update(progress); if (progress < 100){ setTimeout(update, 1000); } else { bar.stop(); console.log('stopped'); } } update();

Si ejecuto este programa con node c.js , lo siguiente se imprime en la consola:

 started ████████████████████████████████████████ 100% | ETA: 0s | 100/100 stopped

Sin embargo, cuando trato de redirigir la salida a un archivo con el node c.js > out.txt , no se imprime nada en la consola (como se esperaba), pero el archivo out.txt solo contiene:

 stopped

¿Por qué el archivo de salida no contiene "iniciado" ni ninguna barra de progreso?

Dado que cli-progress no es mi paquete, también lo he intentado con mi propio emisor de eventos simple.

El archivo b.js tiene un emisor de eventos simple:

 const EventEmitter = require('events'); class B extends EventEmitter { ping(){ this.emit('ping'); } } module.exports = B;

Y el archivo a.js es el siguiente:

 const B = require('./b'); const b = new B(); b.on('ping', () => { console.log('ping'); }) let count = 0; function doPing(){ b.ping(); if (++count < 3){ setTimeout(doPing, 1000); } } doPing();

Ejecutar node a.js imprime 3 "pings" en la consola como se esperaba:

 ping ping ping

Ejecutar node a.js > out.txt también redirige con éxito todos los "pings" al archivo.

¿Por qué esto funciona correctamente con mi ejemplo simple, pero no con cli-progress ? ¿Es este un problema con el paquete cli-progress o algo más?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda