Bagaimana Cara Mengubah Fungsi Asynchronous Callback-based Menjadi Promise-based?

Dibuat
·
Dilihat184 kali
0

Saya memiliki fungsi asinkron berbasis callback bernama getProvinces, saya ingin mengubah fungsi tersebut menjadi berbasis promise di Node.js, boleh menggunakan util.promisify atau Promise.

Berikut fungsinya:

function getProvinces(countryId, callback) {
  setTimeout(() => {
    if (countryId === "id") {
      callback(null, [
        { id: "id-jk", name: "Jakarta" },
        { id: "id-bt", name: "Banten" },
        { id: "id-jr", name: "Jawa Barat" },
      ]);
    } else {
      callback(new Error("Country not found"));
    }
  }, 1000);
}
1 Jawaban
1

Kalau pakai util.promisify , tinggal bungkus fungsinya seperti ini:

const { promisify } = require("util");

const getProvincesPromisify = promisify(getProvinces);

Kalau mau manual pakai objek Promise, ubah fungsinya jadi seperti ini:

function getProvinces(countryId) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (countryId === "id") {
        resolve([
          { id: "id-jk", name: "Jakarta" },
          { id: "id-bt", name: "Banten" },
          { id: "id-jr", name: "Jawa Barat" },
        ]);
      } else {
        reject(new Error("Country not found"));
      }
    }, 1000);
  });
}
Dibuat

Kamu tau jawabannya?

Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!