/* 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. */