Rumah >hujung hadapan web >tutorial js >Corak Reka Bentuk Mana Yang Wujud untuk Percubaan Semula Janji Asynchronous?
Merancang Corak untuk Mencuba Semula Janji
Dalam pengaturcaraan tak segerak, selalunya berguna untuk mencuba semula janji yang gagal sehingga ia diselesaikan. Berikut ialah tiga corak reka bentuk untuk mencapai ini dengan Janji:
1. Cuba Semula Sehingga Janji Selesai (dengan Kelewatan dan Cubaan Semula Maks)
Corak ini membolehkan anda mencuba semula janji sehingga ia berjaya diselesaikan, dengan kelewatan antara setiap percubaan semula. Ia menggunakan gelung for untuk mencipta rangkaian pengendali .catch(), diikuti oleh pengendali .then() untuk penyelesaian yang berjaya.
<code class="javascript">var max = 5; var p = Promise.reject(); for(var i=0; i<max; i++) { p = p.catch(attempt).catch(rejectDelay); } p = p.then(processResult).catch(errorHandler);</code>
2. Cuba Semula Sehingga Keadaan Bertemu pada Keputusan (tanpa Lengah)
Corak ini membolehkan anda mencuba semula janji sehingga syarat tertentu dipenuhi pada hasilnya. Ia menggunakan pendekatan rantai .catch() yang serupa seperti corak sebelumnya, tetapi bukannya rejectDelay, ia menggunakan pengendali .then() untuk menguji keputusan.
<code class="javascript">var max = 5; var p = Promise.reject(); for(var i=0; i<max; i++) { p = p.catch(attempt).then(test); } p = p.then(processResult).catch(errorHandler);</code>
3. Cuba Semula Sehingga Keadaan Bertemu pada Keputusan (dengan Kelewatan)
Corak ini menggabungkan dua corak sebelumnya, membolehkan anda mencuba semula janji sehingga syarat dipenuhi, dengan kelewatan antara setiap percubaan semula. Ia menggunakan rantai .catch() untuk mengendalikan percubaan semula dan pengendali .then() untuk melaksanakan ujian dan memperkenalkan kelewatan.
<code class="javascript">var max = 5; var p = Promise.reject(); for(var i=0; i<max; i++) { p = p.catch(attempt).then(test).catch(rejectDelay); } p = p.then(processResult).catch(errorHandler);</code>
Corak ini menyediakan cara yang ringkas dan cekap untuk mengendalikan percubaan semula dengan Janji, memastikan bahawa kod anda terus dilaksanakan walaupun kegagalan berlaku. Ia boleh disesuaikan untuk memenuhi keperluan khusus aplikasi anda, mengimbangi faktor seperti percubaan semula maksimum, selang kelewatan dan keadaan cuba semula.
Atas ialah kandungan terperinci Corak Reka Bentuk Mana Yang Wujud untuk Percubaan Semula Janji Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!