0
我一饮而尽任务的数组:运行多个任务咕嘟咕嘟异步
var tasks = ['task1','task2','task3'];
如果我开始我的下面一饮而尽任务,它将运行在我的任务阵列中的所有任务,但在同一时间。
gulp.start('mytasks', tasks, function(){});
有没有办法从任务数组异步运行我的任务?
我一饮而尽任务的数组:运行多个任务咕嘟咕嘟异步
var tasks = ['task1','task2','task3'];
如果我开始我的下面一饮而尽任务,它将运行在我的任务阵列中的所有任务,但在同一时间。
gulp.start('mytasks', tasks, function(){});
有没有办法从任务数组异步运行我的任务?
Gulp是基于承诺的,默认情况下是异步的。 从官方Gulp documentation报价:
任务可以进行,如果它的FN执行下列操作之一异步:
- 返回流
- 返回一个承诺
- 接受回调
看看这个e xample模拟上面提到的行为。
var gulp = require('gulp'),
wait = require('gulp-wait');
var tasks = ["task1","task2","task3"]
gulp.task('mytasks', function() {
return gulp.src("/dist")
.pipe(wait(5))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task1', function() {
return gulp.src("/dist")
.pipe(wait(100))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task2', function() {
return gulp.src("/dist")
.pipe(wait(200))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task3', function() {
return gulp.src("/dist")
.pipe(wait(50))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('default', function() {
gulp.start('mytasks', tasks, function(){});
});
NodeJS是单线程的,所以“同时”运行的任务有效地“异步”运行。 – MarcoL