Quick actions

cmd+k|ctrl+k

Navigation

Languages

Chaining Promise using async/await

Snippet info

Language

JavaScript

Visibility

public

Author

tulangrusuk.ku

Created

2020-08-07T15:49:40Z

Updated

2020-08-11T00:31:53Z

//melakukan promise berantai bila menggunakan async/await

const state = {
    isCoffeeMakerReady: 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 makeCoffee = seeds => {
    return new Promise((resolve, reject) => {
        if(state.isCoffeeMakerReady){
            resolve("kopi Berhasil dibuat")
        } else {
            reject("Maaf mesin kopi sedang tidak dapat digunakan")
        }
    })
}

const servingToTable = coffee => {
    return new Promise(resolve => {
        resolve("Pesanan kopi sudah selesai!")
    });
}

async function reserveACoffee(type, miligrams){
    try{
        const seeds = await getSeeds(type, miligrams);
        const coffee = await makeCoffee(seeds);
        const result = await servingToTable(coffee);
        console.log (result);
    }catch (rejectionReason) {
        console.log(rejectionReason);
    }
}


reserveACoffee("robusta", 30);
reserveACoffee("liberica", 80);
INFO