Asynchronous Programming
Asynchronous programming adalah teknik pemrograman yang memungkinkan kita untuk menjalankan kode secara asynchronous atau tidak berurutan. Dengan kata lain, asynchronous programming memungkinkan kita untuk menjalankan kode tanpa harus menunggu kode lainnya selesai dijalankan terlebih dahulu.
Synchronous vs Asynchronous
Synchronous programming adalah teknik pemrograman yang menjalankan kode secara berurutan. Artinya, kode yang ditulis akan dieksekusi secara berurutan dari atas ke bawah. Jika ada kode yang membutuhkan waktu lama untuk dieksekusi, maka kode lainnya harus menunggu hingga kode tersebut selesai dieksekusi.
Asynchronous programming adalah teknik pemrograman yang menjalankan kode secara tidak berurutan. Artinya, kode yang ditulis tidak akan dieksekusi secara berurutan dari atas ke bawah. Jika ada kode yang membutuhkan waktu lama untuk dieksekusi, maka kode lainnya tidak perlu menunggu hingga kode tersebut selesai dieksekusi.
Asynchronous Programming
JavaScript adalah bahasa pemrograman yang berjalan di single-threaded environment. Artinya, JavaScript hanya dapat menjalankan satu kode pada satu waktu. Jika ada kode yang membutuhkan waktu lama untuk dieksekusi, maka kode lainnya harus menunggu hingga kode tersebut selesai dieksekusi.
Namun, JavaScript memiliki beberapa fitur yang memungkinkan kita untuk menjalankan kode secara asynchronous. Fitur-fitur tersebut adalah:
- Callback
- Promise
- Async/Await
Callback
Callback adalah sebuah fungsi yang dikirimkan sebagai parameter pada fungsi lainnya. Callback digunakan untuk menangani proses asynchronous pada JavaScript.
function main(param1, param2, callback) {
console.log(param1);
callback(param2);
}
function callback(param) {
console.log(param);
}
Promise
Promise adalah sebuah objek yang digunakan untuk menangani proses asynchronous. Promise akan mengubah statusnya menjadi fulfilled ketika proses asynchronous berhasil dijalankan. Sebaliknya, Promise akan mengubah statusnya menjadi rejected ketika proses asynchronous gagal dijalankan.
function getData() {
return new Promise((resolve, reject) => {
fetch("https://jsonplaceholder.typicode.com/users")
.then((response) => response.json())
.then((result) => {
resolve(result);
})
.catch((error) => {
reject(error);
});
});
}
getData()
.then((result) => console.log(result))
.catch((error) => console.log(error));
Async/Await
Async/Await adalah sebuah fitur pada JavaScript yang digunakan untuk menangani proses asynchronous. Async/Await merupakan kombinasi antara Promise dan generator. Async/Await membuat kode kita menjadi lebih bersih dan mudah dibaca.
async function getData() {
const response = await fetch("https://jsonplaceholder.typicode.com/users");
const result = await response.json();
console.log(result);
}
Kesimpulan
Asynchronous programming adalah teknik pemrograman yang memungkinkan kita untuk menjalankan kode secara asynchronous atau tidak berurutan. Dengan kata lain, asynchronous programming memungkinkan kita untuk menjalankan kode tanpa harus menunggu kode lainnya selesai dijalankan terlebih dahulu.