Chaining Promise

Run Settings
LanguageJavascript
Language Version
Run Command
/* Dengan promise kita dapat melakukan proses asynchronous operation secara berantai. Contohnya, Ketika kita memesan kopi robusta, maka tahapan yang dilalui oleh barista adalah memastikan biji kopi tersedia, membuat kopi, lalu menghidangkannya kepada pelanggan. Tahapan tersebut harus barista lakukan secara berurutan. Contoh penerapannya: */ const state = { isCofeeMakerReady: true, seedStocks: { arabica: 250, robusta: 60, liberica: 80 } } const getSeeds = (type, miligrams) => { return new Promise((resolve, reject) => { if(state.seedStocks[type] >= miligrams) { state.seedStocks[type] -= miligrams; resolve("Biji kopi didapatkan!") }else{ reject("Maaf stock kopi habis!") } }); } const makeCofee = seeds =>{ return new Promise((resolve, reject) =>{ if(state.isCofeeMakerReady){ resolve("kopi Berhasil dibuat") } else { reject("Maaf mesin kopi sedang tidak dapat digunakan") } }) } const servingToTable = cofee => { return new Promise(resolve => { resolve("Pesanan kopi sudah selesai!") }) } function reserveACofee(type, miligrams){ getSeeds(type, miligrams) .then(makeCofee) .then(servingToTable) .then(resolvedValue => { console.log(resolvedValue); }) .catch(rejectedReason => { console.log(rejectedReason); }) } reserveACofee("liberica", 80);
Editor Settings
Theme
Key bindings
Full width
Lines