DEV Community

Khafid Prayoga
Khafid Prayoga

Posted on

Javascript IIFE

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");
  });
Enter fullscreen mode Exit fullscreen mode

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();
Enter fullscreen mode Exit fullscreen mode

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);
  }
})();
Enter fullscreen mode Exit fullscreen mode

Output:
200 OK

Referensi:
MDN - IIFE

Discussion (0)