/ / Gulp: executa código após a conclusão de tarefas assíncronas - gulp

Gulp: Executar código após tarefas assíncronas serem concluídas - gulp

Eu tenho uma tarefa Gulp com a seguinte missão: Obter uma lista de pastas. Conte as palavras na pasta. Relate a contagem para cada pasta e uma contagem total geral.

Até agora, é isso que eu tenho.

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

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

});

Depois que todas as palavras das pastas tiverem sido contadas, desejo chamar uma função reportGrandTotal. Passei horas tentando descobrir como fazer isso. O problema é que o gulp.src().pipe() cadeia é executada assincronamente. Em muitos dos padrões que tentei, reportGrandTotal acaba sendo executado antes de qualquer um dos gulp.src().pipe() cadeias completas.

Como modifico esta tarefa para que, uma vez que todos os gulp.src().pipe() cadeias foram concluídas, eu posso correr reportGrandTotal e obter o total geral?

Respostas:

0 para resposta № 1

Se estou entendendo sua pergunta, você pode especificar uma dependência para reportGrandTotal, verifique se todas as suas tarefas usam um retorno de chamada ou retornam um fluxo ou uma promessa.

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

o segundo parâmetro será uma dependência e reportGrantTotal não deve ser executado antes que a dependência seja concluída. Documentos do Gulp para dependências