Jika anda baru menggeluti bahasa pemrograman javascript, tentunya anda sering menemukan kode yang dieksekusi secara synchronous maupun asynchronous. Oke, kali ini kita sebut saja kedua istilah itu sync untuk synchronous dan async untuk asynchronous.
Process
Secara default, javascript diproses dalam baris perbaris, artinya setiap baris kode tidak akan dieksekusi sebelum baris kode sebelumnya selesai diproses. Semua proses akan ditampung dan dikenal dengan istilah call stack.
Synchronous
Synchronous (sync), merupakan mode default dalam proses eksekusi perintah kode. Perhatikan baris kode berikut
function tanyaKabar(name) {
    console.log('Apa kabar,', name);
}
function katakanHallo(name) {
    console.log('Hallo,', name);
}
katakanHallo('Guntur');
tanyaKabar('Gun');
Jika kita eksekusi kode diatas, maka pada layar console dibrowser anda akan muncul seperti gambar berikut
Sepertinya semua berjalan dengan baik, tidak ada yang aneh dan baik-baik saja. Hahaa.
Asynchronous
Jika pada sync, kode diproses baris perbaris, maka di async kode diproses secara baris perbaris juga. Hah..., maksudnya, lantas perbedaannya apa?
Dalam skenario-nya, sebenarnya kode async telah diproses, hanya saja sebatas penjadwalan untuk dieksekusi pada tahapan berikutnya. Artinya, kode yang berperilaku async tidak akan langsung dieksekusi, tetapi di skip dan akan melakukan eksekusi baris perintah berikutnya.
function tanyaKabar(name) {
    console.log('Apa kabar,', name);
}
function katakanHallo(name) {
    setImmediate(function () {
        console.log('Hallo,', name);
    });
}
katakanHallo('Guntur');
tanyaKabar('Gun');
Mari kita eksekusi kode diatas dan perhatikan hasilnya
Terlihat perbedaan pada urutan proses eksekusinya. Fungsi katakanHallo('Guntur') tidak langsung dieksekusi, sebab penerapannya menggunakan asynchronous dalam body fungsi katakanHallo.
Kapan Menggunakan Async?
Pemanfaatan async sangat berguna pada saat melakukan operasi-operasi yang tidak harus menunggu proses yang lainnya. Misalnya, memanipulasi DOM ketika melakukan proses ajax.
Agar bisa memahami, kita perlu mengetahui cara menghandle kode async tersebut dengan cara callback ataupun promises.
Kesimpulan
Yang perlu digarisbawahi adalah bagaimana cara kita untuk mengurutkan setiap baris-baris perintah agar dapat diproses dan dieksekusi sesuai tujuan.
Setiap kode yang akan dituliskan tidak selalu menggunakan synchronous ataupun asynchronous, itu selalu bergantung pada kebutuhan sebuah proses program.
 



 
    
Top comments (1)
Handle Async Dengan Promises > 404