2016-02-23 3 views
0

Это мой код:Невозможно создать поток трубопровода с помощью преобразования потоков

stream = require 'stream' 
stringer = new stream.Transform objectMode: true 
stringer2 = new stream.Transform objectMode: true 

stringer.push 'hello' 
stringer.push 'world' 
stringer.push null 


stringer2._transform = (chunk, enc, done) -> 
    console.log chunk.toString() 
    done() 
    return @ 

stringer.pipe(stringer2).pipe process.stdout 

Я могу войти каждый отдельный кусок в stringer2, но им не удалось трубы в результате к stdout. Как мне это сделать?

+0

Вы могли бы воспроизвести это на плункер/скрипку? –

+0

AFAIK codepen/скрипка/plunkr can not run nodejs snips ... – dopatraman

ответ

0

Вам необходимо позвонить this.push(chunk), чтобы передать преобразованный кусок на следующий канал. Вы также можете опустить return this, хотя это ничего не повредит.

В CoffeeScript, он будет выглядеть следующим образом:

stringer2._transform = (chunk, enc, done) -> 
    console.log chunk.toString() 
    @push chunk 
    done() 

Или, как ярлык, вы можете передать кусок в done() в качестве второго аргумента (первая ошибка, или нуль, если нет ошибка):

stringer2._transform = (chunk, enc, done) -> 
    console.log chunk.toString() 
    done null, chunk 
Смежные вопросы