首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并streams节点

合并streams节点
EN

Stack Overflow用户
提问于 2014-07-18 03:55:26
回答 1查看 199关注 0票数 1

此函数的返回值必须是流。在非监视模式下,这很简单;只需返回rebundle,browserify流被转换,诸如此类。然而,在监视模式下,rebundle会在每次更新时运行,并且每次都会创建一个新流。我需要一种方法来合并所有这些流,因为它们被创建为一个我可以返回的无穷无尽的流,实际上可以一直消费下去。使用组合流,似乎一旦数据被读取,流就不再是可写的,所以这是不可能的。任何帮助都将不胜感激!

代码语言:javascript
复制
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 ????
}
EN

回答 1

Stack Overflow用户

发布于 2014-07-18 04:44:16

这是我想出的解决方案。这是一个很好的解决方案(诚然,我对流的理解不是很好),但它看起来工作得很好。仍然有兴趣找到一种更好的方式。

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24812386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档