Dalam tutorial ini, Anda akan belajar tentang JavaScript async / await kata kunci dengan bantuan contoh.
Anda menggunakan async
kata kunci dengan fungsi untuk menyatakan bahwa fungsi tersebut adalah fungsi asinkron. Fungsi async mengembalikan sebuah janji.
Sintaks async
fungsinya adalah:
async function name(parameter1, parameter2,… paramaterN) ( // statements )
Sini,
- nama - nama fungsi
- parameter - parameter yang diteruskan ke fungsi
Contoh: Fungsi Asinkron
// async function example async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f();
Keluaran
Fungsi asinkron.
Dalam program di atas, async
kata kunci digunakan sebelum fungsi untuk menyatakan bahwa fungsi tersebut tidak sinkron.
Karena fungsi ini mengembalikan sebuah promise, Anda dapat menggunakan metode chaining then()
seperti ini:
async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f().then(function(result) ( console.log(result) ));
Keluaran
Fungsi Asinkron 1
Dalam program di atas, f()
fungsi diselesaikan dan then()
metode dijalankan.
JavaScript menunggu Kata Kunci
Kata await
kunci digunakan di dalam async
fungsi untuk menunggu operasi asinkron.
Sintaks untuk menggunakan await adalah:
let result = await promise;
Penggunaan await
menjeda fungsi async sampai promise mengembalikan nilai hasil (menyelesaikan atau menolak). Sebagai contoh,
// a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( // wait until the promise resolves let result = await promise; console.log(result); console.log('hello'); ) // calling the async function asyncFunc();
Keluaran
Janji terselesaikan halo
Dalam program di atas, sebuah Promise
objek dibuat dan diselesaikan setelah 4000 milidetik. Di sini, asyncFunc()
fungsinya ditulis menggunakan async
fungsi.
Kata await
kunci menunggu janji selesai (selesaikan atau tolak).
let result = await promise;
Oleh karena itu, halo ditampilkan hanya setelah nilai janji tersedia untuk variabel hasil.
Dalam program di atas, jika await
tidak digunakan, hello akan ditampilkan sebelum Promise diselesaikan.

Catatan : Anda await
hanya dapat menggunakan di dalam fungsi async.
Fungsi async memungkinkan metode asynchronous untuk dijalankan dengan cara yang tampak sinkron. Meskipun operasinya tidak sinkron, tampaknya operasi tersebut dijalankan secara sinkron.
Ini bisa berguna jika ada beberapa promise dalam program. Sebagai contoh,
let promise1; let promise2; let promise3; async function asyncFunc() ( let result1 = await promise1; let result2 = await promise2; let result3 = await promise3; console.log(result1); console.log(result1); console.log(result1); )
Dalam program di atas, await
tunggu setiap janji selesai.
Penanganan Error
Saat menggunakan async
fungsi tersebut, Anda menulis kode secara sinkron. Dan Anda juga dapat menggunakan catch()
metode ini untuk menangkap kesalahan tersebut. Sebagai contoh,
asyncFunc().catch( // catch error and do something )
Cara lain untuk menangani kesalahan adalah dengan menggunakan try/catch
blok. Sebagai contoh,
// a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( try ( // wait until the promise resolves let result = await promise; console.log(result); ) catch(error) ( console.log(error); ) ) // calling the async function asyncFunc(); // Promise resolved
Dalam program di atas, kami telah menggunakan try/catch
blok untuk menangani kesalahan. Jika program berjalan dengan sukses, itu akan masuk ke try
blok. Dan jika program membuat kesalahan, itu akan masuk ke catch
blok.
Untuk mempelajari lebih lanjut tentang try/catch
secara detail, kunjungi coba / tangkap JavaScript JavaScript.
Manfaat Menggunakan Fungsi async
- Kode ini lebih mudah dibaca daripada menggunakan callback atau janji.
- Penanganan kesalahan lebih sederhana.
- Debugging lebih mudah.
Catatan : Kedua kata kunci async/await
ini diperkenalkan di versi JavaScript yang lebih baru (ES8). Beberapa browser lama mungkin tidak mendukung penggunaan async / await. Untuk mempelajari lebih lanjut, kunjungi JavaScript async / await dukungan browser.