在执行gulp任务的时候经常会遇到上一个任务执行完毕再执行下一个任务
不知道应该如何处理
我用了一个插件写的代码 先后顺序不对
我希望是执行顺序是 a->a完成->b->b完成->c
var gulp = require('gulp'),
gulpSequence = require('gulp-sequence');
gulp.task('a',function(){
setTimeout(function(){
console.log('task a done...')
},300)
});
gulp.task('b',function(){
setTimeout(function(){
console.log('task b done...')
},200)
});
gulp.task('c',function(){
setTimeout(function(){
console.log('task c done...')
},100)
});
gulp.task('default', gulpSequence('a', 'b', 'c'));
但是结果是这样的:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
那是你的用法不对,因为task里都是异步行为,你得通知它做完。
参考资料 https://github.com/teambition/gulp-sequence
https://github.com/Platform-CUF/use-gulp
因为gulp的执行是异步的啊,并非阻塞。
注意看文档,
https://github.com/gulpjs/gulp/blob/master/docs/API.md
gulp.task(name[, deps], fn)
这里的 deps 是依赖,
你可以这样。
这个时候 b的执行就是在 a之后,但是这种执行方式是有要求的:
看你使用 setTimeout来看, 第三种方式比较适合你