2016-01-20 5 views
0

У меня есть массив глоток задачи:Запуск несколько глотка Задачи асинхронна

var tasks = ['task1','task2','task3']; 

если я начинаю свою следующую задачу глотка, он будет работать все задачи в моем массиве задач, но в то же время.

gulp.start('mytasks', tasks, function(){}); 

Есть ли способ запускать мои задачи из массива задач асинхронно?

+0

NodeJS однопоточный, поэтому задача, выполняющая «в то же время», эффективно работает «асинхронно». – MarcoL

ответ

0

Gulp - это обещание и по умолчанию асинхронное. Цитирование с официальным Gulp documentation:

Задач могут быть выполнены асинхронно, если его сноска делает один из следующих действий:

  • Вернуться поток
  • Возвращения обещание
  • Принять обратный вызов

Взгляните на это 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(){}); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^