Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

238
Vistas
Garantía para flujos que retrasan el flujo de datos

Los flujos de nodos, por lo que pude encontrar 1 , retrasan todo el flujo de datos hasta el final del tic (normalmente process.nextTick , pero qué cola no es importante) y no comienzan a bombear datos sincrónicamente en llamadas de método.

Lamentablemente, no pude encontrar una garantía para este comportamiento en los documentos (espero que no la haya visto) y, por lo tanto, difícilmente puedo depender de ella. ¿Es este comportamiento en la API pública? ¿Esto se extiende a todas las transmisiones que utilizan la API para implementadores de transmisiones?

Para elaborar, a excepción de leer explícitamente sync con stream.Readable.prototype.read , todos los mecanismos parecen no comenzar a bombear datos sincrónicamente:

múltiples controladores de eventos en una fila:

 import * as stream from 'node:stream'; const r = stream.Readable.from(['my\ndata', 'more\nstuff']); r.on('data', data => { /* do something */ }); // oops, attaching the first event handler could have already // sent out all data synchronously r.on('data', data => { /* do more */ });

iniciar una canalización, antes de que existan los controladores de eventos:

 import * as stream from 'node:stream'; import * as readline from 'node:readline'; const r = stream.Readable.from(['my\ndata', 'more\nstuff']); const p = new stream.PassThrough(); const rl = readline.createInterface({ input: p, output: null, }); r.pipe(p); // oops, starting the pipe could have already sent all the data, // giving "line" events without any listener being attached yet rl.on('line', line => { /* do something */ });

Mi esperanza es que me perdí una línea en los documentos, y eso es todo. De lo contrario, será difícil saber cuánto puedo depender de este comportamiento. Por ejemplo, en los ejemplos anteriores, uno podría pausar explícitamente la transmisión primero y reanudarla en nextTick (o similar), pero sería considerablemente más limpio si se pudiera depender de este comportamiento.


[1]: por ejemplo, toda la complejidad añadida y la construcción de realizar un seguimiento de la sync , o publicaciones antiguas que preguntan por el comportamiento en ese momento

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda