caolan / caolan/highland

concat stream not emitting "end" event

Offen
#653 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
3.4k
Forks
145
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I might be missing something but I'm trying a simple stream concat of 2 streams,
and noticed that while each stream emits the "end" event, the concat result doesn't.

Reproduction Steps:
``` js
var highland = require("highland");
(function() {
s1 = highland(['1', '2', '3']), s2 = highland(['4', '5', '6']), s3 = s1.concat(s2);
const log = s => process.stdout.write(` [${s}] `);
s1.on('end', function() { log('s1 ended') });
s2.on('end', function() { log('s2 ended') });
s3.on('end', function() { log('s3 ended') });
s3.map(n => `[${n}]`).pipe(process.stdout);
})();
```
Outputs:
`[1][2][3] [s1 ended] [4][5][6] [s2 ended] undefined`
Expected:
`[s3 ended]` to print to console too.

ps: I noticed that if I add another transform at the end ( `s4 = s3.map(....); s4.on('end', ...)`), that stream does emit "end".

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Führen Sie die JavaScript-Reproduktion aus dem Issue aus und vergleichen Sie die Endereignisse von s1, s2 und s3, einschließlich des hinzugefügten Falls mit map transform. Verfolgen Sie das Abschlussverhalten des concat-Streams; abgeschlossen bedeutet, dass der direkte s3-Listener "end" ausgibt, nachdem beide Eingabestreams beendet wurden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.