function filterBookPromise(colorful, amountOfPage) { return new Promise(function (resolve, reject) { var books = [ { name: "shinchan", totalPage: 50, isColorful: true }, { name: "kalkulus", totalPage: 250, isColorful: false }, { name: "doraemon", totalPage: 40, isColorful: true }, { name: "algoritma", totalPage: 250, isColorful: false }, ]; if (amountOfPage >= 40) { resolve( books.filter( (x) => x.totalPage >= amountOfPage && x.isColorful == colorful ) ); } else { var reason = "Maaf buku dibawah 40 halaman tidak tersedia"; reject(reason); } }); } async function example(colorful, totalPage) { try { const result = await filterBookPromise(colorful, totalPage); console.log(result); } catch (error) { console.error(error); } } example(true, 40); example(false, 250); example(true, 30);