Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

in transform stream transform method, `callback(null, null)` doesn't end stream but `this.push(null); callback()` does

Fechada Para iniciantes
#62,769 7 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
javascript

Direção de pesquisa

Comece em lib/internal/streams/transform.js, nas linhas 177-179, e compare o comportamento documentado do callback de Transform com a implementação existente do stream. Reproduza a diferença entre callback(null, null) e this.push(null); callback(), depois inspecione os testes relevantes do stream. Está concluído quando ambas as formas encerram o stream consistentemente, conforme descrito.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

stale
Version

latest main branch

Platform
irrelevant
Subsystem

stream

What steps will reproduce the bug?

https://nodejs.org/api/stream.html#transform-transformchunk-encoding-callback

callback(null, null) doesn't end stream but this.push(null); callback() does

How often does it reproduce? Is there a required condition?

Always

What is the expected behavior? Why is that the expected behavior?

callback(null, null) and this.push(null); callback() have the same effect (the stream ends).

What do you see instead?

callback(null, null) is different from this.push(null); callback()

Additional information

https://github.com/nodejs/node/blob/main/lib/internal/streams/transform.js#L177-L179

Would it be possible to change this to the following?

if (val !== undefined) {
  this.push(val)
}
Linguagem predominante
JavaScript
Estrelas
122k
Forks
37.4k
Merge médio
4d 11h
PRs com merge (30d)
294

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de nodejs/node

Todas as issues de nodejs/node

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.