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