concat stream not emitting "end" event
- 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
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