Асинхроност на задачите во Gulp

Треба да разберете дека сите задачи во Gulp - се асинхрони. Што значи ова, ајде да погледнеме на пример. Нека во јавна задача се повикуваат две приватни:

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

Асинхроноста значи дека задачата task2 нема да го чека завршувањето на извршувањето на задачата task1, туку ќе се извршува паралелно со неа.

Ајде да размислиме за ова на поконкретен пример. Нека првата задача го преобразува LESS во CSS, а втората задача - го минимизира добиениот CSS.

Во таков случај ќе се соочиме со проблем: не може да се минимизира CSS датотеката пред во неа да се најде резултатот од компајлирањето на LESS!

Сепак, ако задачите се извршуваа синхроно - последователно една по друга, ќе се соочевме со друг проблем: задачите, кои може да се извршат паралелно, ќе се извршуваа една по друга, што ќе ја забавува работата на Gulp. Ајде да размислиме и за ова на пример.

Нека првата задача ги минимизира CSS датотеките, а втората задача - ги минимизира JavaScript датотеките. Очигледно е дека овие две неповрзани операции може да се извршуваат истовремено.

За среќа, Gulp нуди алатки, кои овозможуваат експлицитно да се наведе кои задачи мора да се извршат паралелно, а кои - последователно. Овие алатки ќе ги разгледаме во следната лекција.

Задание 1

Смислете пример за две задачи, кои треба да се извршат само последователно.

Задание 2

Смислете пример за две задачи, кои треба да се извршат само паралелно.