Gulpда вазифаларнинг асинхронлиги
Сиз Gulpнинг барча вазифалари - асинхрон эканини тушунишингиз керак. Бу нимани англатади, келиб куйидаги мисолда кўрамиз. Омммавий вазифа ичида иккита хусусий вазифа чақирилсин:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Асинхронлик демак, task2 вазифаси
task1 вазифасининг тугашини
кутмай, унга параллел равишда бажарилади.
Келиб буни янада амалий мисолда ўрганамиз. Биринчи вазифа LESSни CSSга айлантирсин, иккинчи вазифа эса олинган CSSни минимизация қилсин.
Бундай ҳолда биз муаммога дуч келамиз: чунки LESSни компиляция қилиш натижаси CSS файлига тушгунича уни минимизация қилиб бўлмайди!
Агар вазифалар синхрон равишда бажарилганда - кетма-кет бирини орқаси иккинчиси, биз бошқа муаммога дуч келамиз: параллел бажарилиши мумкин бўлган вазифалар, бирини орқаси иккинчиси бажарилиб, Gulpнинг иш тезлигини секинлатиб қўйар эди. Келиб буни ҳам мисолда ўрганамиз.
Биринчи вазифа CSS файлларини минимизация қилсин, иккинчи вазифа эса JavaScript файлларини минимизация қилсин. Маълуким, бу икки ўзаро боглик бўлмаган амалиётларни бир вақтнинг ўзида бажариш мумкин.
Хурсандликка сабаб, Gulp курилмаларни тақдим этади, улар қайси вазифалар параллел, қайсилари эса кетма-кет бажарилиши кераклигини аниқ кўрсатиб беради. Бу курилмаларни биз кейинги дарсда ўрганамиз.
Фақатгина кетма-кет бажарилиши керак бўлган икки вазифа мисолини топишингиз керак.
Фақатгина параллел бажарилиши керак бўлган икки вазифа мисолини топишингиз керак.