IIFE (Immediately Invoked Function Expression) merupakan sebuah terminologi ketika anda ingin mengeksekusi sebuah function secepatnya setelah didefinisikan. Hal tersebut dapat membuat kode lebih bersih, misalnya ketika melakukan debugging pada Async/Promise based function.
Pada skenario dibawah ini saya akan mensimulasikan sebuah function yang melakukan request ke API server.
const data = (number) =>
new Promise((resolve, reject) => {
if (number === 200) resolve("200 OK");
else reject("400 Bad Request");
});
Dibelakang layar apabila fungsi dipanggil dan number memiliki argumen bernilai 200, object tersebut akan mendapatkan state resolve. Jika number berisi selain 200 maka akan mendapatkan state reject.
Kemudian kita akan memanggil function tersebut dengan cara pemanggilan pada umumnya.
const fetchData = async () => {
try {
const response = await data(200);
console.log(response);
} catch (err) {
console.error(err);
}
};
fetchData();
Terlihat setelah kita menginisialisasikan fetchData kemudian kita memanggilnya dengan menggunakan parentheses.
Dengan mengunakan IIFE anda hanya memerlukan double-parentheses ()(). Parentheses pertama diinterpretasikan sebagai expressions dan yang kedua sebagai function call.
Berikut contoh kode yang digunakan untuk mengkonsumsi API dari server menggunakan metode IIFE.
(async () => {
try {
const response = await data(200);
console.log(response);
} catch (err) {
console.error(err);
}
})();
Output:
200 OK
Referensi:
MDN - IIFE
Top comments (0)