Janji di Node.js

Mar 24 2023
Node.js adalah lingkungan runtime populer yang memungkinkan pengembang membangun aplikasi yang dapat diskalakan dan efisien.

Node.js adalah lingkungan runtime populer yang memungkinkan pengembang membangun aplikasi yang dapat diskalakan dan efisien. Salah satu fitur inti dari Node.js adalah kemampuannya untuk menangani kode asinkron, yang sangat penting untuk membangun aplikasi berperforma tinggi. Kode asinkron dapat menjadi tantangan untuk dikelola, terutama saat menangani operasi kompleks atau tugas yang berjalan lama. Di sinilah janji masuk, menyediakan cara sederhana dan efektif untuk menangani operasi asinkron di Node.js.

Pada artikel ini, kita akan mengeksplorasi konsep promise di Node.js dan mengapa itu penting untuk membangun aplikasi modern.

Apa itu Janji?

Secara sederhana, janji adalah objek yang mewakili nilai yang mungkin belum tersedia. Janji digunakan untuk menangani operasi asinkron dalam JavaScript, seperti membuat permintaan jaringan atau membaca file dari disk.

Janji memiliki tiga status:

  • Pending: Status awal dari sebuah promise, yang menunjukkan bahwa nilainya belum tersedia.
  • Terpenuhi: Status janji saat operasi berhasil, dan nilainya tersedia.
  • Ditolak: Status janji saat operasi gagal, dan terjadi kesalahan.

Membuat Janji di Node.js

Membuat janji di Node.js sangatlah mudah. Kami menggunakan konstruktor Janji untuk membuat janji baru dan meneruskan fungsi yang melakukan operasi asinkron. Fungsi mengambil dua argumen, penyelesaian dan penolakan, yang menunjukkan apakah operasi berhasil atau tidak.

Berikut adalah contoh yang membuat janji yang diselesaikan setelah penundaan satu detik:

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Operation successful!');
  }, 1000);
});

Menangani Hasil Janji

Setelah janji dibuat, kita dapat menggunakan metode then untuk menangani hasilnya. Metode then mengambil dua fungsi sebagai argumen, satu untuk menangani operasi yang berhasil dan satu lagi untuk menangani kesalahan.

Berikut adalah contoh yang menggunakan janji yang dibuat di atas untuk mencatat hasilnya ke konsol:

myPromise.then((result) => {
  console.log(result);
}).catch((error) => {
  console.error(error);
});

Janji Berantai

Salah satu fitur kuat dari janji adalah kemampuan untuk menyatukannya. Hal ini memungkinkan kita melakukan serangkaian operasi asinkron secara berurutan, tanpa membuat callback bersarang.

Berikut adalah contoh yang menyatukan dua janji:

const getUser = (id) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const user = { id, name: 'John Doe' };
      resolve(user);
    }, 1000);
  });
};

const getPosts = (user) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const posts = [{ id: 1, title: 'Post 1' }, { id: 2, title: 'Post 2' }];
      resolve({ user, posts });
    }, 1000);
  });
};

getUser(1)
  .then(getPosts)
  .then((result) => {
    console.log(result);
  })
  .catch((error) => {
    console.error(error);
  });

#nodejs #javascript #blockchain #promise #fullstackdeveloper