Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melaksanakan Urutan Janji dalam Susunan dan Mengendalikan Penolakan?

Bagaimana untuk Melaksanakan Urutan Janji dalam Susunan dan Mengendalikan Penolakan?

Susan Sarandon
Lepaskan: 2024-11-24 13:18:11
asal
1001 orang telah melayarinya

How to Execute a Sequence of Promises in Order and Handle Rejections?

Cara Menyegerakkan Urutan Janji

Dalam senario ini, anda perlu memastikan bahawa:

  • Janji diselesaikan dalam keadaan yang sama tertib mereka disenaraikan dalam tatasusunan.
  • Jika mana-mana elemen ditolak, keseluruhan jujukan harus ditolak.

Walaupun tiada penyelesaian terbina dalam langsung untuk ini, berikut ialah cara untuk mencapai tingkah laku ini:

Lelaran Manual Menggunakan Rekursi:

function sequence(arr) {
  const index = 0;

  function next() {
    if (index < arr.length) {
      arr[index]().then(next).catch(reject);
      index++;
    }
  }
  next();
}
Salin selepas log masuk

Menggunakan Kurangkan:

function sequence(arr) {
  return arr.reduce((p, item) => {
    return p.then(() => item()); // Assuming each element is a promise-returning function
  }, Promise.resolve());
}
Salin selepas log masuk

Menggunakan Promise.mapSeries:

Jika anda menggunakan perpustakaan Bluebird Promise, anda boleh menggunakan kaedah Promise.mapSeries:

function sequence(arr) {
  return Promise.mapSeries(arr, item => item());
}
Salin selepas log masuk

Menggunakan ES7 Async/Await:

Jika disokong, anda boleh menggunakan async/wait untuk mencapai ini:

async function sequence(arr) {
  const results = [];
  for (let item of arr) {
    results.push(await item());
  }
  return results;
}
Salin selepas log masuk

Menggunakan Spex Library:

Pustaka spex menyediakan kaedah jujukan yang membolehkan anda mengulangi jujukan dinamik janji:

import { sequence } from 'spex';

function sequence(nextPromise) {
  // while nextPromise() creates and returns another promise, continue resolving it;
}
Salin selepas log masuk

Ingat, jika mana-mana elemen dalam tatasusunan ditolak, jujukan akan menolak sebaik sahaja penolakan itu ditemui. Tingkah laku ini memastikan elemen selanjutnya tidak diproses.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Urutan Janji dalam Susunan dan Mengendalikan Penolakan?. 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