Асинхроност на задачите во Gulp
Треба да разберете дека сите задачи во Gulp - се асинхрони. Што значи ова, ајде да погледнеме на пример. Нека во јавна задача се повикуваат две приватни:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Асинхроноста значи дека задачата task2
нема да го чека завршувањето на извршувањето
на задачата task1, туку ќе се извршува
паралелно со неа.
Ајде да размислиме за ова на поконкретен пример. Нека првата задача го преобразува LESS во CSS, а втората задача - го минимизира добиениот CSS.
Во таков случај ќе се соочиме со проблем: не може да се минимизира CSS датотеката пред во неа да се најде резултатот од компајлирањето на LESS!
Сепак, ако задачите се извршуваа синхроно - последователно една по друга, ќе се соочевме со друг проблем: задачите, кои може да се извршат паралелно, ќе се извршуваа една по друга, што ќе ја забавува работата на Gulp. Ајде да размислиме и за ова на пример.
Нека првата задача ги минимизира CSS датотеките, а втората задача - ги минимизира JavaScript датотеките. Очигледно е дека овие две неповрзани операции може да се извршуваат истовремено.
За среќа, Gulp нуди алатки, кои овозможуваат експлицитно да се наведе кои задачи мора да се извршат паралелно, а кои - последователно. Овие алатки ќе ги разгледаме во следната лекција.
Смислете пример за две задачи, кои треба да се извршат само последователно.
Смислете пример за две задачи, кои треба да се извршат само паралелно.