Synchronous code runs in sequence. This means that each operation must wait for the previous one to complete before executing. Show Asynchronous code runs in parallel. This means that an operation can occur while another one is still being processed. Asynchronous code execution is often preferable in situations where execution can be blocked indefinitely. Some examples of this are network requests, long-running calculations, file system operations etc. Using asynchronous code in the browser ensures the page remains responsive and the user experience is mostly unaffected. Proses asynchronous sering digunakan untuk komunikasi data, karena data menjadi bagian inti dari sebuah aplikasi maka konsep asynchronous sangat penting untuk dipahami. Selain termasuk Interpreted Language dan Dynamic-Typed Language, JavaScript juga termasuk Single Threaded Programming Language. Yaitu JavaScript hanya bisa melakukan satu operasi di satu waktu, sehingga code JavaScript dieksekusi secara berurutan dari atas ke bawah layaknya sebuah antrian atau biasa disebut synchronous. Copy
Ketika event terjadi maka callback dari event tersebut akan ditempatkan pada suatu tempat yang disebut Event Handler Queue atau Queue. Event Loop akan terus memonitor Queue dan akan mengeksekusi callback sesuai urutan siapa yang pertama masuk ke dalam Queue. Ada 3 teknik yang digunakan untuk menghandle proses asynchronous pada JavaScript: Callback adalah function yang menjadi argument untuk function lain dan akan dieksekusi pada poin tertentu, bisa jadi saat ini atau nanti. Contoh Copy
Nested CallbackKita bisa menambahkan callback di dalam callback. Copy
Sama seperti pada kasus memesan ojek online, status permintaan kita pada aplikasi online diantara tiga kondisi:
Membuat PromiseKeyword yang dipakai untuk membuat Promise adalah Promise. Copy
Promise HandlerSelanjutnya untuk merespon hasilnya (baik berupa value atau error) kita perlu menambahkan handler. Handler biasanya berupa function dan ditempatkan di dalam method bernama then(). Copy |