JavaScript Asinkron
- Halaman Sebelumnya JS Callback
- Halaman Berikutnya JS Promise
"Saya akan selesai nanti!"
Fungsi yang berjalan bersama-sama dengan fungsi lain disebut asinkron (asynchronous)
Sebuah contoh yang bagus adalah JavaScript setTimeout()
JavaScript asinkron
Misalnya di bab sebelumnya telah di simpulkan secara besar-besaran.
Tujuannya adalah untuk menunjukkan sintaks callback fungsi:
Contoh
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); } myCalculator(5, 5, myDisplayer);
Pada contoh di atas,myDisplayer
adalah nama fungsi.
dipergunakan sebagai parameter ke myCalculator()
。
Dalam dunia nyata, callback paling sering digunakan bersama dengan fungsi asinkron.
Sebuah contoh tipikal adalah JavaScript setTimeout()
。
Menunggu timeout
Dalam penggunaan fungsi JavaScript setTimeout()
Dalam hal ini, Anda dapat menentukan fungsi yang akan dieksekusi saat timeout:
Contoh
setTimeout(myFunction, 3000); function myFunction() { document.getElementById("demo").innerHTML = "Saya mencintai kamu !!"; }
Dalam contoh di atas,myFunction
digunakan sebagai callback.
Fungsi (nama fungsi) dikirim sebagai parameter ke setTimeout()
。
3000 adalah jumlah milidetik sebelum timeout, jadi 3 detik kemudian akan dipanggil myFunction()
。
Ketika Anda mengirimkan fungsi sebagai parameter, ingat jangan gunakan kurung.
Benar: setTimeout(myFunction, 3000);
Kesalahan: setTimeout(myFunction(), 3000);
Jika tidak mengirimkan nama fungsi sebagai parameter ke fungsi lain, Anda selalu dapat mengirimkan fungsi secara penuh:
Contoh
setTimeout(function() { myFunction("Saya mencintai kamu !!!"); }, 3000); function myFunction(value) {}} document.getElementById("demo").innerHTML = value; }
Pada contoh di atas,function(){ myFunction("Saya sayang kamu !!!"); }
digunakan sebagai callback. Ini adalah fungsi yang lengkap. Fungsi yang lengkap dijadikan parameter untuk di passing ke setTimeout().
3000 adalah jumlah milidetik sebelum timeout, jadi 3 detik kemudian akan dipanggil myFunction()
。
Tunggu interval:
Dalam penggunaan fungsi JavaScript setInterval()
dalam setiap interval, dapat ditentukan fungsi callback yang dieksekusi:
Contoh
setInterval(myFunction, 1000); function myFunction() { let d = new Date(); document.getElementById("demo").innerHTML= d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); }
Pada contoh di atas,myFunction
digunakan sebagai callback.
Fungsi (nama fungsi) dikirim sebagai parameter ke setInterval()
。
1000 adalah jumlah milidetik antara interval, jadi myFunction()
akan dipanggil setiap detik.
Tunggu berkas
Jika Anda membuat fungsi untuk memuat sumber eksternal (seperti skrip atau berkas), Anda tidak dapat menggunakan konten ini sebelum konten sepenuhnya terload.
Ini adalah waktu yang terbaik untuk menggunakan callback.
Pada contoh ini, memuat berkas HTML (mycar.html
),dan tampilkan berkas HTML di halaman web setelah berkas sepenuhnya terload:
Tunggu berkas:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function getFile(myCallback) { let req = new XMLHttpRequest(); req.open('GET', "mycar.html"); req.onload = function() { if (req.status == 200) { myCallback(this.responseText); } else { myCallback("Kesalahan: " + req.status); } } req.send(); } getFile(myDisplayer);
Dalam contoh di atas,myDisplayer
digunakan sebagai callback.
Fungsi (nama fungsi) dikirim sebagai parameter ke getFile()
。
Berikut adalah mycar.html
salinannya:
mycar.html
<img src="img_car.jpg" alt="Mobil Bagus" style="width:100%"> <p>Mobil adalah kendaraan bermotor berroda, yang beroperasi mandiri, digunakan untuk transportasi.</p> <p>Sebagian besar definisi istilah menentukan bahwa mobil dirancang untuk beroperasi utamanya di jalan, untuk memiliki tempat duduk untuk satu sampai delapan orang, untuk biasanya memiliki empat roda.</p> <p>(Wikipedia)</p>
- Halaman Sebelumnya JS Callback
- Halaman Berikutnya JS Promise