Mengendalikan Ralat Janji Individu Dalam Janji.all()
Promise.all() mempunyai tingkah laku khusus apabila mengendalikan ralat dalam kumpulan janji. Ia menolak sebaik sahaja janji pertama ditolak, menghalang akses kepada keputusan janji lain. Untuk menangani isu ini, kami berhasrat untuk menangkap ralat janji individu tanpa menjejaskan kesinambungan rantai janji.
Pendekatan Anda
Penyelesaian yang dicadangkan anda melibatkan menangkap ralat dalam setiap janji menggunakan kaedah then() dan catch(). Walaupun pendekatan ini sepatutnya berfungsi secara teori, anda menyebut menghadapi isu yang tidak dapat diselesaikan.
Memahami Promise.all()
Adalah penting untuk memahami bahawa Promise.all() menyelesaikan dengan tatasusunan nilai yang diselesaikan dari janji input atau penolakan dengan ralat janji pertama yang ditolak. Ia tidak menyokong konsep pengendalian ralat janji individu secara berasingan.
Sebab Potensi Tingkah Laku Tidak Selesai
Jika kod anda tidak menyelesaikan seperti yang dijangkakan, mungkin ada yang berbeza sebab isu tersebut. Ia mungkin berkaitan dengan bahagian lain kod yang anda tidak sertakan dalam soalan anda.
Pendekatan Cadangan
Untuk mengendalikan ralat janji individu semasa menggunakan Promise.all( ), anda boleh mempertimbangkan pendekatan alternatif berikut:
Balut Promise.all() dalam Janji
Balut Janji.all() dalam janji baharu supaya anda boleh mengendalikan ralat secara berasingan:
<code class="js">return new Promise((resolve, reject) => { Promise.all(arrayOfPromises) .then(resolve) .catch(reject); });</code>
Pendekatan ini membolehkan anda mengendalikan ralat dalam blok tangkapan janji luar dan meneruskan rantai janji seperti yang diperlukan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Ralat Janji Individu dalam Promise.all()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!