pipe道输出通过2

我第一次尝试2,我遇到了一些麻烦。 我正在处理我的数据通过一系列的stream,我想从我的转换function。

文档说,我应该使用this.push从我的转换函数中获取数据,然后在完成时调用callback函数,所以我试图用pipe道来做这件事(因为它应该做同样的事情,对不对?) ,但是我得到一个writeAfterEnd错误。 我的代码和堆栈跟踪如下,但我不知道该怎么做。 有人能指出我正确的方向吗?

代码 –

 function run(chunk, encoding, callback) { this.on("finish", function(){ console.log("this finished") callback() }) dataStream = new stream.Readable({objectMode: true}); dataStream._read = function noop(){}; dataStream.push(chunk); dataStream.pipe(sass()).pipe(this) } gulp.src("./web-src/scss/add_post.scss").pipe(through.obj(run)).on('data', function(chunk){console.log(chunk)}) 

堆栈跟踪 –

 events.js:85 throw er; // Unhandled 'error' event ^ Error: write after end at writeAfterEnd (/Volumes/BackRoom/Dropbox/Timpani/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:198:12) at DestroyableTransform.Writable.write (/Volumes/BackRoom/Dropbox/Timpani/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:243:5) at write (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24) at flow (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7) at DestroyableTransform.pipeOnReadable (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:664:5) at DestroyableTransform.emit (events.js:104:17) at emitReadable_ (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:448:10) at emitReadable (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:444:5) at readableAddChunk (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:187:9) at DestroyableTransform.Readable.push (/Volumes/BackRoom/Dropbox/Timpani/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:149:10) 

你正在实现一个stream或只使用through2?

API文档警告使用.push()stream消费者。

错误:如果chunk === null,“Stream实现者的API”解释为EOF,则可能会发生结尾写入。