Quick actions

cmd+k|ctrl+k

Navigation

Languages

Promise All

Snippet info

Language

JavaScript

Visibility

public

Author

tulangrusuk.ku

Created

2020-08-07T15:12:38Z

Updated

2020-08-07T15:12:38Z

/* Ada kasus dmn kita memesan makanan dalam banyak dan bermacam-macam menu,
meskipun menu nya berbeda-beda tak jarang pelayan menghidangkannya dalam
waktu bersamaan. Pada kasus tersebut pelayan menggunakan teknik Promise.all()

Methdo Promise.all() dpt menerima banyak promise(dalam bentuk array) pada
parameternya dan kemudian method tersebut akan mengembalikan nilai seluruh 
hasil dari promise yang kita tetapkan dalam bentuk array.
contoh:         */
const sotoBabat = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("Soto Babat dihidangkan!")
        }, 4000)
    })
}

const gadoGado = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("Gado-gado dihidangkan!")
        }, 2000)
    })
}

const nasiGoreng = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("Nasi goreng dihidangkan!")
        }, 3000)
    })
}

const promises = [sotoBabat(), gadoGado(), nasiGoreng()];

Promise.all(promises)
.then(resolvedValue => {
    console.log(resolvedValue);
})

/* Promise.all() akan mengembalikan nilai jika seluruh poses promise di 
dalamnnya selesai dijalankan. Pada kdoe diatas, kita membutuhkan waktu 4
detik hingga semua proses promise selesai.

Urutan nilai yang ditampilkan menyesuaikan urutan promise yang kita
tentukan pada parameternya. 

Nilai soto babat akan tetap berada di posisi pertama, meskipun proses
pembuatannya memakan waktu paling lama. */
INFO