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

240
Visualizações
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 à 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