Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melaksanakan Janji Secara Berurutan untuk Tatasusunan Dinamik?
Apabila bekerja dengan tatasusunan, selalunya perlu melaksanakan satu siri tugasan untuk setiap elemen secara berurutan, menghantar parameter antara janji.
Untuk mencapai ini, seseorang boleh menggunakan siri panggilan .then() bersarang. Walau bagaimanapun, apabila saiz tatasusunan meningkat, pendekatan ini menjadi rumit dan tidak fleksibel.
Penyelesaian ringkas ialah menggunakan kaedah .reduce() untuk melipat tatasusunan menjadi satu siri of promises:
<code class="js">const promiseChain = myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() );</code>
Pendekatan yang lebih boleh diselenggara ialah menggunakan fungsi async yang berulang melalui tatasusunan dan melaksanakan setiap janji secara berurutan:
<code class="js">const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x); } }; forEachSeries(myArray, myPromise);</code>
Jika nilai pulangan janji diperlukan, sedikit pengubahsuaian fungsi mapSeries boleh digunakan:
<code class="js">const mapSeries = async (iterable, fn) => { const results = []; for (const x of iterable) { results.push(await fn(x)); } return results; };</code>
Pendekatan ini memberikan lebih fleksibiliti dan kebolehbacaan kod apabila mengendalikan susunan janji yang dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Janji Secara Berurutan untuk Tatasusunan Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!