Asynkronitet av oppgaver i Gulp
Du bør forstå at alle Gulp-oppgaver er asynkrone. Hva dette betyr, la oss se på et eksempel. Anta at innenfor en offentlig oppgave kalles to private oppgaver:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asynkronisitet betyr at oppgaven task2
ikke vil vente på at utførelsen av
oppgaven task1 skal fullføres,
men vil kjøre parallelt med den.
La oss tenke på dette med et mer praktisk eksempel. Anta at den første oppgaven konverterer LESS til CSS, og den andre oppgaven minifiserer den resulterende CSS-en.
I dette tilfellet vil vi støte på et problem: man kan ikke minifisere CSS-filen før resultatet av LESS-kompileringen har kommet inn i den!
Imidlertid, hvis oppgavene ble utført synkront - sekvensielt en etter en, ville vi støtt på et annet problem: oppgaver som kan utføres parallelt, ville blitt utført en etter en, noe som sinker Gulps arbeid. La oss også tenke på dette med et eksempel.
Anta at den første oppgaven minifiserer CSS-filer, og den andre oppgaven minifiserer JavaScript- filer. Det er åpenbart at disse to uavhengige operasjonene kan utføres samtidig.
Heldigvis tilbyr Gulp verktøy som lar oss eksplisitt angi hvilke oppgaver som må utføres parallelt, og hvilke som må utføres sekvensielt. Disse verktøyene skal vi se på i neste leksjon.
Kom på et eksempel på to oppgaver som bare skal utføres sekvensielt.
Kom på et eksempel på to oppgaver som bare skal utføres parallelt.