DEV Community

Khafid Prayoga
Khafid Prayoga

Posted on

1 2 1 1 1

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

Top comments (0)

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more