Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menunggu Beberapa Janji JavaScript untuk Selesai Sebelum Meneruskan?

Bagaimanakah Saya Boleh Menunggu Beberapa Janji JavaScript untuk Selesai Sebelum Meneruskan?

Barbara Streisand
Lepaskan: 2024-12-19 00:16:09
asal
376 orang telah melayarinya

How Can I Wait for Multiple JavaScript Promises to Finish Before Continuing?

Menunggu Berbilang Tugas Asynchronous untuk Dilengkapkan dalam JavaScript

Masalah:

Anda mempunyai satu siri tugasan tak segerak (janji ) dan perlu melaksanakan blok kod hanya apabila kesemuanya telah selesai.

Penyelesaian:

Gunakan Promise.all untuk mengumpulkan semua janji ke dalam satu tatasusunan dan menunggu penyelesaian atau penolakannya.

Pelaksanaan:

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
  });
Salin selepas log masuk

Disemak fungsi doSomeAsyncStuff:

function doSomeAsyncStuff() {
  return new Promise((resolve, reject) => {
    const editor = generateCKEditor();
    editor.on('instanceReady', (evt) => {
      doSomeStuff();
      resolve(true);
    })
  });
}
Salin selepas log masuk

Contoh:

function doSomethingAsync(value) {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log("Resolving " + value);
      resolve(value);
    }, Math.floor(Math.random() * 1000));
  });
}

function test() {
  const promises = [];

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

  Promise.all(promises)
    .then((results) => {
      console.log("All done", results);
    })
    .catch((e) => {
      // Handle errors here
    });
}

test();
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menunggu Beberapa Janji JavaScript untuk Selesai Sebelum Meneruskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan