2016-03-20 57 views
1

我有一個函數返回一個幾個流:Node.js.如何將多個流(數組或鏈)傳遞給管道?

// function 
var s1 = through.obj({highWaterMark: 2}, function(data, enc, next) { 
    console.log("A: "+data); 
    next(null, "A"); 
}); 

var s2 = through.obj({highWaterMark: 2}, function(data, enc, next) { 
    console.log("B: "+data); 
    next(null, "B"); 
}); 

return [s1, s2]; 
// or chain: 
// s1.pipe(s2); 
// return s1; 

我想要的功能,並將結果傳遞到管:

gulp.src(...).pipe(...).pipe(getStreams()).pipe(gulp.dest...); 

有沒有辦法做到這樣?

或者我可以像下一個那樣做一些事情嗎?

​​

回答

0

可以使用merge-stream模塊:

const mergeStream = require('merge-stream'); 
gulp.src(...).pipe(...).pipe(mergeStream(s1, s2)).pipe(gulp.dest...); 
+0

合併流不起作用。我認爲這只是爲了不流行。 – wishmaster35

+0

您也可以爲obj流使用merge-stream。我想我誤解了你的問題。你想這樣管道:'src.pipe(getStreams())。pipe(dest)',其中getStreams()會返回一串流的權利? – lxe

+0

getStreams()必須返回幾個流。所有這些都會以另一種方式鏈接或合併。查看我的示例:http://plnkr.co/edit/ufSKTaUh7fWkzuJhFrQU?p=catalogue – wishmaster35

相關問題