Gulp:异步任务完成后运行代码

时间:2016-01-16 05:23:11

标签: gulp

我有一项Gulp任务,其任务如下:获取文件夹列表。计算文件夹中的单词。报告每个文件夹的计数和总计数。

到目前为止,这就是我所拥有的。

gulp.task('count', function() {

  ['folder1','folder2',...].forEach(function(folderName) {
    gulp.src(['./'+folderName+'/**/*.md']).pipe(countWords(folderName));
  });

});

在计算了所有文件夹的单词后,我想调用函数reportGrandTotal。我花了好几个小时试图弄清楚如何做到这一点。问题是gulp.src().pipe()链以异步方式运行。在我尝试的许多模式中,reportGrandTotal在任何gulp.src().pipe()链完成之前就会运行。

如何修改此任务,以便在完成所有gulp.src().pipe()个链后,我可以运行reportGrandTotal并获得总计?

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您可以为reportGrandTotal指定依赖项,确保所有任务都使用回调或返回流或承诺。

gulp.task('reportGrandTotal', ['count'], function(){
    // your code
}

第二个参数是依赖项,reportGrantTotal在依赖项完成之前不应该运行。 Gulp docs for dependencies