Asinkronitas Tugas di Gulp
Anda harus memahami bahwa semua tugas Gulp - adalah asinkron. Apa artinya, mari kita lihat pada contoh. Misalkan di dalam tugas publik dua tugas privat dipanggil:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Asinkronitas berarti bahwa tugas task2
tidak akan menunggu sampai penyelesaian
tugas task1 selesai, tetapi akan dijalankan
secara paralel dengannya.
Mari kita pertimbangkan ini dengan contoh yang lebih praktis. Misalkan tugas pertama mengubah LESS menjadi CSS, dan tugas kedua - meminimalkan CSS yang didapat.
Dalam kasus seperti itu, kita akan menghadapi masalah: bagaimanapun, tidak mungkin meminimalkan file CSS sebelum hasil kompilasi LESS masuk ke dalamnya!
Namun, jika tugas dijalankan secara sinkron - secara berurutan satu demi satu, kita akan menghadapi masalah lain: tugas-tugas yang dapat dijalankan secara paralel, akan dijalankan satu demi satu, memperlambat kerja Gulp. Mari kita pertimbangkan ini juga dengan contoh.
Misalkan tugas pertama meminimalkan file CSS, dan tugas kedua - meminimalkan file JavaScript. Jelas bahwa kedua operasi yang tidak terkait ini dapat dilakukan secara bersamaan.
Untungnya, Gulp menyediakan alat, yang memungkinkan kita untuk secara jelas menentukan, tugas mana yang harus dijalankan secara paralel, dan mana yang - secara berurutan. Alat-alat ini akan kita bahas dalam pelajaran berikutnya.
Cari contoh dua tugas yang harus dijalankan hanya secara berurutan.
Cari contoh dua tugas yang harus dijalankan hanya secara paralel.