Вазифаҳои асинхронии дар Gulp
Шумо бояд фаҳмед, ки ҳамаи вазифаҳои Gulp - асинхронанд. Ин чӣ маъно дорад, биёед ба мисол назар андозем. Фарз мекунем, ки дар дохили вазифаи ҷамъиятӣ ду вазифаи хусусӣ фарохонӣ мешаванд:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Асинхронӣ маънои онро дорад, ки вазифаи task2
интизори анҷоми иҷрои
вазифаи task1 нахоҳад монд, балки ба таври
ҳамзамон бо он иҷро хоҳад шуд.
Биёед инро дар мисоли амалӣ таҳлил кунем. Фарз мекунем, вазифаи аввал LESS-ро ба CSS табдил медиҳад, ва вазифаи дуюм - CSS-и ҳосилшударо хурд мекунад (минимизирует).
Дар ин ҳолат, мо бо мушкилӣ рӯ ба рӯ мешавем: ҳоло наметавон CSS-файлро хурд кард (минимизировать) пеш аз он, ки натиҷаи компилятсияи LESS ба он дастрас шавад!
Аммо, агар вазифаҳо синхронӣ иҷро мешуданд - ба тартиб як пас аз дигаре, мо бо мушкилии дигар рӯ ба рӯ мешудем: вазифаҳое, ки метавон ба таври ҳамзамон иҷро кард, як пас аз дигаре иҷро мешуданд, ки кори Gulp-ро суст мекунад. Биёед инро низ дар мисол таҳлил кунем.
Фарз мекунем, ки вазифаи аввал файлҳои CSS-ро хурд мекунад, вазифаи дуюм - файлҳои JavaScript-ро хурд мекунад. Ошкор аст, ки ин ду амалиётҳои вобастанашударо метавон дар як вақт иҷро кард.
Хушбахтона, Gulp абзорҳое пешниҳод мекунад, ки имкон медиҳанд, ки равшан нишон диҳанд, кадом вазифаҳо бояд ба таври ҳамзамон иҷро шаванд ва кадомҳо - ба тартиб. Мо ин абзорҳоро дар дарси оянда таҳлил хоҳем кард.
Мисоле оред аз ду вазифа, ки танҳо бояд ба тартиб иҷро шаванд.
Мисоле оред аз ду вазифа, ки танҳо бояд ба таври ҳамзамон иҷро шаванд.