2016-05-11 4 views
3

Предположим, у меня есть следующая задача:Вторая задача выполнения последовательности не работает

gulp.task('my-task', function (cb) { 
    fs.appendFileSync('myPath', 'data'); 
}); 

Когда я сделать что-то вроде этого:

gulp.task('build', function (cb) { 
    runSequence('my-task', 'some-task',cb); 
}); 

my-task работает и заканчивается, но some-task никогда не работает ,

Мой вопрос: как мне сделать some-task бежать после my-task закончен?

ответ

1

Ваша проблема в том, что глоток не замечает, что my-task закончен. Когда вы объявляете функцию обратного вызова cb вы есть на самом деле вызвать функцию обратного вызова:

gulp.task('my-task', function (cb) { 
    fs.appendFileSync('myPath', 'data'); 
    cb(); 
}); 

Или вы можете оставить обратный вызов из полностью, так как fs.appendFileSync синхронно в любом случае:

gulp.task('my-task', function() { 
    fs.appendFileSync('myPath', 'data'); 
}); 
+0

Спасибо за хороший трюк оставить обратный вызов полностью. Итак, какова логика этого? можете ли вы указать мне какую-нибудь документацию? –

+0

Задачи всегда синхронны, если вы не используете [один из трех способов подсказки асинхронного поведения] (https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support) –

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

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