整合 streams 来处理错误

整合 streams 来处理错误

默认情况下,在 stream 中发生一个错误的话,它会被直接抛出,除非已经有一个时间监听器监听着 error 时间。 这在处理一个比较长的管道操作的时候会显得比较棘手。

通过使用 stream-combiner2,你可以将一系列的 stream 合并成一个,这意味着,你只需要在你的代码中一个地方添加监听器监听 error 时间就可以了。

这里是一个在 gulpfile 中使用它的例子:

var combiner = require('stream-combiner2' var uglify = require('gulp-uglify' var gulp = require('gulp' gulp.task('test', function() { var combined = combiner.obj([ gulp.src('bootstrap/js/*.js'), uglify(), gulp.dest('public/bootstrap') ] // 任何在上面的 stream 中发生的错误,都不会抛出, // 而是会被监听器捕获 combined.on('error', console.error.bind(console) return combined; }