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);
}
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);
});
}
Kamu tau jawabannya?
Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!