Gulp тапшырмаларынын асинхрондуулугу

Сиз түшүнүшүңүз керек, бардык Gulp тапшырмалары - асинхрондуу. Бул эмнени билдирет, келгиле мисал үстүндө карап көрөлү. Жарыяланган тапшырманын ичинде эки жашырын тапшырма чакырылсын:

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

Асинхрондуулук деген, task2 тапшырмасы task1 тапшырмасы аякташын күтпөй, аны менен параллелдүү иштейт.

Келгиле мунун практикалык мисалын ойлонуп көрөлү. Биринчи тапшырма LESSти CSSке айландырсын, экинчи тапшырма - алынган CSSти минимизацияласын.

Анда биз көйгөйгө туш болобуз: анткени LESSтин компиляция натыйжасы кирбестен, CSS файлын минимизациялоого болбойт!

Бирок, эгерде тапшырмалар синхрондуу иштесе - биринин артынан бири иштелсе, биз башка көйгөйгө туш болобуз: параллелдүү иштетилүүгө боло турган тапшырмалар, биринин артынан бири иштелип, Gulptун ишин жайлатмак. Келгиле мунун мисалын дагы ойлонуп көрөлү.

Биринчи тапшырма CSS файлдарын минимизацияласын, экинчи тапшырма - JavaScript файлдарын минимизацияласын. Бул эки байланышпаган амалдарды бир эле убакта аткарууга болоорун ачык көрүүгө болот.

Бактыга жараша, Gulp каражаттарды сунуштайт, кайсы тапшырмалар параллелдүү, кайсылары катарма-катар иштелиши керек экенин так белгилөөгө мүмкүндүк берет. Бул каражаттарды биз кийинки сабакта карап чыгабыз.

Задание 1

Биринин артынан бири гана иштелиши керек болгон эки тапшырманын мисалын ойлоп табыңыз.

Задание 2

Параллелдүү гана иштелиши керек болгон эки тапшырманын мисалын ойлоп табыңыз.