Rumah >hujung hadapan web >tutorial js >Bagaimana Menggunakan Promise.all untuk Mengurus dan Menunggu Pelbagai Janji?

Bagaimana Menggunakan Promise.all untuk Mengurus dan Menunggu Pelbagai Janji?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 17:37:11418semak imbas

How to Use Promise.all to Manage and Await Multiple Promises?

Cara Mengendalikan Pelbagai Janji dan Menunggu Penyelesaiannya

Apabila bekerja dengan kod tak segerak, selalunya perlu mengendalikan berbilang janji dan menunggunya semua perlu diselesaikan sebelum meneruskan. Artikel ini akan membimbing anda untuk mencapai matlamat ini menggunakan Promise.all.

Introducing Promise.all

Promise.all menerima pelbagai janji dan mengembalikan satu janji yang dapat diselesaikan apabila semua janji input telah diselesaikan, atau menolak jika salah satu daripadanya menolak.

Menstrukturkan semula doSomeAsyncStuff untuk Mengembalikan Janji

Untuk menjadikan doSomeAsyncStuff berfungsi dengan janji, ubah suainya seperti berikut:

function doSomeAsyncStuff() {
    return new Promise((resolve) => {
        editor.on('instanceReady', function(evt) {
            doSomeStuff();
            resolve(true);
        });
    });
}

Menggunakan Promise.all untuk Menunggu Semua Async Tugasan

Setelah doSomeAsyncStuff mengembalikan janji, anda boleh menggunakan Promise.all untuk menunggu semua kejadian itu selesai. Berikut ialah versi kod anda yang dipertingkatkan:

const promises = [];

for (let i = 0; i < 5; i++) {
    promises.push(doSomeAsyncStuff());
}

Promise.all(promises)
    .then(() => {
        for (let i = 0; i < 5; i++) {
            doSomeStuffOnlyWhenTheAsyncStuffIsFinish();    
        }
    })
    .catch((e) => {
        // Handle errors here
    });

Kod ini mencipta pelbagai janji daripada setiap panggilan ke doSomeAsyncStuff. Promise.all mengambil tatasusunan ini dan menunggu semua janji diselesaikan. Setelah semua janji diselesaikan, panggilan balik kemudian dilaksanakan, membolehkan anda melakukan tindakan yang bergantung pada hasil tugas tak segerak.

Atas ialah kandungan terperinci Bagaimana Menggunakan Promise.all untuk Mengurus dan Menunggu Pelbagai Janji?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn