JavaScript Async #17: Concurrency: Promise.all, allSettled, race
1. Apa itu Concurrency?
Concurrency adalah menjalankan beberapa proses asynchronous secara bersamaan agar lebih efisien.
2. Promise.all()
Promise.all() menunggu semua Promise berhasil. Jika satu gagal, semuanya dianggap gagal.
Promise.all([
Promise.resolve("Data 1"),
Promise.resolve("Data 2"),
Promise.resolve("Data 3")
]).then((result) => console.log(result));
3. Promise.allSettled()
Promise.allSettled() menunggu semua Promise selesai, baik berhasil maupun gagal.
Promise.allSettled([
Promise.resolve("Sukses"),
Promise.reject("Gagal")
]).then((result) => console.log(result));
4. Promise.race()
Promise.race() mengambil hasil Promise yang selesai paling dulu.
Promise.race([
new Promise((resolve) => setTimeout(() => resolve("Cepat"), 1000)),
new Promise((resolve) => setTimeout(() => resolve("Lambat"), 2000))
]).then((result) => console.log(result));
5. Kapan Digunakan?
Promise.all()saat semua hasil wajib suksesPromise.allSettled()saat ingin melihat semua hasilPromise.race()saat butuh hasil tercepat
6. Ringkasan
- Concurrency membantu efisiensi async process
- Setiap method Promise punya perilaku berbeda
- Pilih method sesuai kebutuhan flow aplikasi
Di part berikutnya kita membahas microtask vs macrotask queue.

