Assincronismo de tarefas no Gulp

Você deve entender que todas as tarefas do Gulp são assíncronas. O que isso significa? Vamos ver um exemplo. Suponha que dentro de uma tarefa pública duas tarefas privadas são chamadas:

javascriptfunction taskD(cb) {
  task1(cb);
  task2(cb);
  cb();
}

Assincronismo significa que a tarefa task2 não irá aguardar a conclusão da execução da tarefa task1, mas será executada em paralelo com ela.

Vamos refletir sobre isso com um exemplo mais prático. Suponha que a primeira tarefa transforma LESS em CSS, e a segunda tarefa - minifica o CSS obtido.

Neste caso, enfrentaremos um problema: afinal, não é possível minificar o arquivo CSS antes que o resultado da compilação LESS seja inserido nele!

No entanto, se as tarefas fossem executadas de forma síncrona - sequencialmente, uma após a outra, enfrentaríamos outro problema: tarefas que poderiam ser executadas em paralelo, seriam executadas uma após a outra, retardando o trabalho do Gulp. Vamos também refletir sobre isso com um exemplo.

Suponha que a primeira tarefa minifica arquivos CSS, e a segunda tarefa - minifica arquivos JavaScript. Obviamente, estas duas operações não relacionadas podem ser executadas simultaneamente.

Felizmente, o Gulp fornece ferramentas que permitem indicar explicitamente quais tarefas devem ser executadas em paralelo e quais - sequencialmente. Essas ferramentas serão analisadas na próxima lição.

Задание 1

Pense em um exemplo de duas tarefas que devem ser executadas apenas sequencialmente.

Задание 2

Pense em um exemplo de duas tarefas que devem ser executadas apenas em paralelo.