Dalam artikel ini Konsep Koding secara singkat merangkum masalah yang terkait dengan JavaScript Synchronous, dan pertama-tama melihat beberapa teknik asinkron berbeda yang akan Anda temui, menunjukkan bagaimana mereka dapat membantu kami memecahkan masalah tersebut.
Pengertian Dan Contoh Synchronous dan Asynchronous in JavaScript |
JavaScript adalah bahasa pemrograman utas tunggal (single thread) yang berarti hanya satu hal yang dapat terjadi pada satu waktu. Artinya, mesin JavaScript hanya dapat memproses satu pernyataan pada satu waktu dalam satu utas.
Meskipun bahasa utas tunggal (single thread) menyederhanakan penulisan kode karena Anda tidak perlu khawatir tentang masalah konkurensi, ini juga berarti Anda tidak dapat melakukan operasi lama seperti akses jaringan tanpa memblokir utas utama.
Bayangkan meminta beberapa data dari API. Bergantung pada situasinya, server mungkin memerlukan waktu untuk memproses permintaan sambil memblokir utas utama yang membuat halaman web tidak responsif.
Di situlah JavaScript asinkron berperan. Menggunakan JavaScript asinkron (seperti panggilan balik, janji, dan asinkron/menunggu), Anda dapat melakukan permintaan jaringan yang panjang tanpa memblokir utas utama.
Javascript Synchronous
JavaScript Synchronous: Seperti namanya, Synchronous berarti berada dalam urutan, yaitu setiap pernyataan kode dieksekusi satu per satu. Jadi, pada dasarnya sebuah pernyataan harus menunggu pernyataan sebelumnya untuk dieksekusi.
Contoh Javascript Synchronous
// This function is synchronous
function log(arg) {
console.log(arg)
}
log(1);
JavaScript Asynchronous
JavaScript Asynchronous: Kode asynchronous memungkinkan program untuk dieksekusi segera di mana kode sinkron akan memblokir eksekusi lebih lanjut dari kode yang tersisa sampai menyelesaikan yang sekarang. Ini mungkin tidak terlihat seperti masalah besar tetapi ketika Anda melihatnya dalam gambaran yang lebih besar, Anda menyadari bahwa itu dapat menyebabkan penundaan Antarmuka Pengguna.
Contoh Javascript Asynchronous
// This function is asynchronous
setTimeout(() => {
console.log(2)
}, 0);
log(3)
Perbedaan Synchronous dan Asynchronous
Synchronous
- Menghentikan eksekusi kode lebih lanjut sampai ini selesai.
- Karena ini penghentian eksekusi lebih lanjut, kode sinkron disebut 'pemblokiran'. Pemblokiran dalam arti tidak ada kode lain yang akan dieksekusi.
Asynchronous
- Eksekusi ini ditangguhkan ke loop acara, ini adalah konstruksi di mesin virtual JS yang menjalankan fungsi asinkron (setelah tumpukan fungsi sinkron kosong).
- Kode asinkron disebut non-blocking karena tidak memblokir kode lebih lanjut agar tidak berjalan.
0 Comments