var jasmine = require('gulp-jasmine');
var debug = require('gulp-debug');
var testFunc = function(platform, testType) {
var timer = startTimer();
console.log('started!');
return gulp.src('./src/**/_test/**/*.mem.js')
.pipe(jasmine({
verbose: !!args.verbose,
timeout: 15000
}))
.pipe(debug())
.on('error', function(e) {
console.log('started!');
throw e;
})
.on('end', function() {
console.log('end!');
console.log(stopTimer(timer));
});
};
gulp.task('mem', function(done) {
testFunc('chrome', 'mem').on('end', function() {
console.log('done!');
done();
});
});
On gulp v3.9.1。上面的代码完成后没有记录“结束!”或“完成!”到控制台。我该怎么做才能做到这一点?吞吐任务在Stream发出“结束”事件之前退出
My console output:
> gulp mem
[13:10:39] Using gulpfile ~/foo/bar/gulpfile.js
[13:10:39] Starting 'mem'...
started!
[13:10:39] gulp-debug: src/components/avatar/_test/avatar.mem.js
[13:10:39] gulp-debug: src/factories/store/_test/store.mem.js
[13:10:39] gulp-debug: 2 items
UPDATE:
注意到下面迟缓芽孢杆菌的建议,这对于同步任务运作良好,像一饮而尽调试。但是异步的,比如吞噬茉莉花,流在任务完成之前结束。您还会注意到,“完成‘MEM’X秒后”不打印:
My console output:
> gulp mem
[13:10:39] Using gulpfile ~/foo/bar/gulpfile.js
[13:10:39] Starting 'mem'...
started!
ended!
...
3 specs, 0 failures
Finished in 18.5 seconds
在对数据做任何事情之前设置事件。你尝试过吗? – KreemPuff
嗯,这样的工作......我很好奇,为什么我看到的每个例子吞噬事件处理程序添加在管道列表的最后,而不是开始? – AlexZ
它们可能是更长时间运行任务的示例。但通常情况下,您希望尽可能早地设置侦听器 – KreemPuff