Dalam pengembangan sebuah website, asynchronous programming merupakan hal yang penting untuk dipelajari. Mengapa? . sebelum mempelajari asinkron, mari kita pahami dulu apa itu asinkron dan sinkron Show 👋🏼Sinkron vs AsinkronDalam program sinkron, ketika Anda menulis dua baris kode, kode akan dieksekusi secara berurutan dari baris pertama ke baris kedua, dengan kata lain kode kedua tidak dapat dieksekusi sebelum mengeksekusi kode pertama. Bisa dibayangkan dalam kehidupan nyata seperti mengantri di kasir untuk melakukan pembayaran. Anda tidak dapat melakukan pembayaran sebelum semua antrian di depan Anda dilayani Tetapi dalam program asinkron, jika Anda menulis dua baris kode, Anda dapat mengeksekusi kode baris kedua tanpa harus menunggu baris pertama selesai dieksekusi. Di dunia nyata, bisa dibayangkan memesan makanan melalui seorang pramusaji, dimana sambil menunggu makanan datang, Anda bisa melakukan aktivitas lain seperti membuka laptop, menulis hingga pesanan Anda tersaji. Urutan dia mendapatkan makanan terlebih dahulu memiliki korelasi dengan saat dia memesan makanan. Namun tidak hanya itu, faktor ini juga dipengaruhi oleh makanan apa yang dia pesan. Misalnya saat Anda memesan nasi rendang sedangkan teman Anda hanya memesan air mineral, padahal Anda yang memesan terlebih dahulu. Membuahkan nasi rendang tentunya akan memakan waktu lebih lama dibandingkan menuang air mineral ke dalam gelas Dalam program yang dibuat menggunakan Asynchronous, tugas-tugas kecil akan diselesaikan terlebih dahulu dibandingkan dengan tugas-tugas besar, bahkan jika tugas besar dijalankan terlebih dahulu Nah, apa perbedaan antara sinkron dan asinkron? Jika sudah mari kita lanjut ke materi selanjutnya setTimeout 🕦Fungsi dari setTimeout() adalah cara termudah untuk membuat kode yang dapat berjalan secara asinkron. Fungsi ini menerima dua parameter. Parameter pertama adalah fungsi yang ingin dijalankan secara asinkron, kemudian parameter kedua adalah nilai angka dalam milidetik sebagai nilai tunggu sebelum fungsi dijalankan. berikut adalah contoh sederhana penggunaan setTimeout() .
Dari program tersebut dapat disimpulkan bahwa hasilnya memiliki urutan sebagai berikut
Namun, studi kasus ini sedikit berbeda karena kami menggunakan fungsi dari setTimeout() yang tidak akan menghentikan kode untuk menjalankan kode pada baris berikutnya, sehingga urutannya menjadi sebagai berikut.
Ketika program di atas dijalankan, maka akan muncul output sebagai berikut Fungsi Panggilan Balik 🤙Ada kebingungan ketika Anda bekerja dengan sinkron dan asinkron, bagaimana menangani nilai yang diperoleh secara asinkron dalam program yang berjalan secara sinkron. Contohnya seperti kode berikut _Kemudian outputnya Jika Anda menggunakan cara ini untuk mencetak nilai kola dalam fungsi asinkron, maka itu tidak akan terjadi, mengapa demikian? . Jadi fungsi dari buyCola() akan selalu mengembalikan nilai setTimeout() tidak dapat menghentikan kode JavaScript untuk mengeksekusi kode selanjutnya. Jadi fungsi dari buyCola() akan selalu mengembalikan/mereturn nilai null , Itu karena kode return cola akan dieksekusi terlebih dahulu sebelum kode cola= 'Cola telah dipesan. ' . Kode asinkron harus diatur dengan cara yang berbeda dari kode normal atau kode sinkron. Cara paling sederhana adalah dengan menggunakan fungsi callback. Apa itu fungsi panggilan balik? . Anda menunggu pesanan makanan datang ke meja, tetapi saat itu kami tidak bisa tinggal di meja karena ada urusan mendesak. Dalam hal ini mungkin ada dua hal yang bisa kita lakukan
Dalam JavaScript, teman kita bertindak seperti fungsi callback. Dia dapat dipesan pada fungsi asychronous dan akan dipanggil/digunakan saat tugas selesai Lalu bagaimana cara membuatnya?
Kemudian kita menggunakan parameter callback di fungsi setTimeout() yang diisi dengan data yang akan dibawa (cola) saat tugas selesai.
Setelah menggunakan callback , Function tidak perlu mengembalikan nilai atau mengembalikan cola; . Sehingga keseluruhan kodenya akan tampak seperti berikut: _Kemudian kita gunakan fungsi buyCola , Kita ubah kodenya dari berikut ini.
Makhluk _Sehingga keseluruhan kode akan terlihat seperti berikut
Kemudian outputnya Panggilan Balik Neraka 😈Seperti yang telah kita pelajari di atas, callback diperlukan untuk mendapatkan nilai yang berasal dari fungsi asinkron. Jadi bagaimana jika ada proses yang saling bergantung?
Pada level-level di atas sangat bergantung satu sama lain. Anda tidak bisa memanggang adonan sebelum Anda memiliki bahan-bahannya. Ketika tahapan dari semua tahapan berjalan secara sinkron kita dapat melakukannya sebagai berikut _Namun jika fungsi di atas berjalan secara asinkron, maka Anda akan membuat apa yang disebut callback hell. callback sih terjadi karena banyak sekali fungsi nested callback karena saling membutuhkan, hingga tampilan kodenya seperti berikut _Melihat kode seperti ini sangat membingungkan dan membutuhkan kehati-hatian ekstra, Bayangkan jika Anda mengembangkan kode ini di masa mendatang Lalu bagaimana solusinya agar kita terhindar dari callback hell? _0Dengan Promise, Anda dapat meminimalkan callback hell dan mengubah kode agar lebih mudah dibaca Apa itu JavaScript Tunggu async?Async / menunggu adalah fitur yang hadir sejak ES2017. Fitur ini memudahkan kita menangani proses asinkron. Async / Await adalah sintaks khusus yang digunakan untuk menangani Janji secara berurutan untuk menulis kode lebih efisien dan rapi.
Untuk apa fungsi async?Asynchronous network server programming adalah suatu pendekatan dalam komunikasi server dimana server dapat saling berkomunikasi, mengirim, dan menerima data secara bersamaan tanpa harus menghentikan komunikasi dengan client lain.
Mengapa menggunakan async Menunggu?Async - menunggu bisa dikatakan cara sederhana menggunakan JavaScript Promise yang cukup sulit dipahami. JavaScript tidak memblokir - tidak menunggu fungsi selesai sebelum melanjutkan ke fungsi lain. Keuntungannya - efisien dan cepat, karena tidak perlu menunggu.
Apa itu Node JS asinkron?Asinkron & Digerakkan oleh peristiwa
. Node.js bersifat asinkron , artinya tidak memblokir proses lain saat menunggu satu proses untuk diselesaikan. Server Node . js akan melanjutkan ke panggilan API berikutnya dan kemudian memanfaatkan mekanisme notifikasi kejadian untuk mendapatkan respons dari panggilan API sebelumnya. |