Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并流节点_Javascript_Node.js_Stream_Browserify_Watchify - Fatal编程技术网

Javascript 合并流节点

Javascript 合并流节点,javascript,node.js,stream,browserify,watchify,Javascript,Node.js,Stream,Browserify,Watchify,此函数的返回必须是流。在非观看模式下,这很容易;只是返回重新处理,browserify流被转换,诸如此类,好的。但是,在监视模式下,每次更新都会运行rebundle,每次都会创建一个新流。我需要一种方法来整合所有这些流,因为它们被创建成一个单一的无止境的流,我可以返回,实际上可以消耗下来。使用组合流时,似乎一旦读取了数据,流就不再是可写的,所以这是不可能的。任何帮助都将不胜感激 var bundleify = function(watch) { var bundler = (watch

此函数的返回必须是流。在非观看模式下,这很容易;只是返回重新处理,browserify流被转换,诸如此类,好的。但是,在监视模式下,每次更新都会运行rebundle,每次都会创建一个新流。我需要一种方法来整合所有这些流,因为它们被创建成一个单一的无止境的流,我可以返回,实际上可以消耗下来。使用组合流时,似乎一旦读取了数据,流就不再是可写的,所以这是不可能的。任何帮助都将不胜感激

var bundleify = function(watch) {

    var bundler = (watch?watchify:browserify)('main.js');

    var rebundle = function () {
        return bundler.bundle()
            .on('error', console.log)
            .pipe(source('main.js'))
            .pipe(rename('app.js'))
            .pipe(jsTasks()); // lazypipe with other tasks
    };

    // Regular browserify, just return the stream.
    if (!watch) {
        return rebundle();
    }

    // Watchify, rebundle on update.
    bundler.on('update', function() {
        rebundle();
    });

    // return ????
}

这是我想出的解决办法。这是一个相当贫民区(不可否认,我对溪流没有太多的了解),但它看起来很有效。仍然有兴趣找到更好的方法

var outstream = through2.obj();
var interceptor = function(){
    return through2.obj(function(obj, enc, cb) {
        outstream.push(obj);
        cb()
    });
}

bundler.on('update', function() {
    rebundle().pipe(interceptor());
});

rebundle().pipe(interceptor());
return outstream;

我不知道你想完成什么。您是否正在尝试将一组流连接起来,使它们被视为字符串(其中一个流完全是第一个流,然后是下一个流,然后是下一个流)?或者你正在尝试交错他们的数据?