𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗶𝗻𝗸𝗿𝗼𝗻 𝗱𝗮𝗻 𝗔𝘀𝗶𝗻𝗸𝗿𝗼𝗻
JavaScript berjalan pada satu thread tunggal. Ini berarti ia mengeksekusi satu hal pada satu waktu. Anda perlu memahami cara ia menangani tugas untuk menulis kode yang efisien.
JavaScript Sinkron
Kode sinkron berjalan baris demi baris. Setiap tugas menunggu tugas sebelumnya selesai. Ini disebut blocking. Jika satu tugas memakan waktu lama, seluruh program akan terhenti.
- Eksekusi: Urutan tetap.
- Blocking: Ya.
- Kompleksitas: Sederhana.
- Terbaik untuk: Tugas-tugas sederhana yang berurutan.
JavaScript Asinkron
Kode asinkron berjalan secara independen. Tugas-tugas tidak memblokir kode lain saat sedang menunggu. Ini disebut non-blocking. Tugas dimulai di latar belakang dan memberi tahu Anda saat tugas tersebut selesai.
- Eksekusi: Tugas berjalan secara independen.
- Blocking: Tidak.
- Kompleksitas: Lebih tinggi.
- Terbaik untuk: Pemanggilan API, timer, dan operasi file.
Tiga cara untuk menangani tugas asinkron:
- Callbacks: Sebuah fungsi yang berjalan setelah tugas selesai.
- Promises: Sebuah objek yang merepresentasikan penyelesaian atau kegagalan suatu operasi.
- Async/Await: Metode yang paling bersih. Ini membuat kode asinkron terlihat seperti kode sinkron tanpa memblokir thread.
Operasi asinkron yang umum:
- Timer: setTimeout()
- Pemanggilan API: fetch()
- Pembacaan file: readFile()
- Event pengguna: addEventListener()
Event Loop membuat hal ini dapat bekerja. Ia menggunakan Call Stack, Web APIs, dan Callback Queue untuk mengelola beberapa tugas sekaligus.
Ringkasan:
- Sinkron: Satu demi satu. Memblokir eksekusi.
- Asinkron: Tugas-tugas independen. Tidak memblokir.
- Default JavaScript: Sinkron.
Source: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Source: https://www.w3schools.com/js/js_asynchronous.asp Source: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Full post: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69