Promise Retry Design模式
返回新的承诺(函数(解决,拒绝){ var错误; var尝试= function(){ if(times == 0){ 拒绝(错误); } 别的 { fn()。然后(解决) .catch(函数(e){ 时代 - ; 错误= e; setTimeout(function(){trib()},delay); }); } }; 试图(); }); }; 模式#2:重试直到条件相遇 work.publish() 。 返回新的承诺(函数(解决,拒绝){ var Intervelid = setInterval(function(){ work.requeststatus(结果)。 switch(result2.status){ 案例“进度”:中断; //什么也不做 案例“成功”:clear Interval(Intervalid);解析(结果2);休息; 情况“失败”:clear Interval(Intervalid);拒绝(结果2);休息; } })。捕获(function(error){clear Interval(IntervalId); recond(errir)}); },1000); }); })) 。 。它仅指定重试之间的延迟。
使用.catch()链函数refffectdelay(quasence){ 返回新的承诺(函数(解决,拒绝){ settimeout(recult.bind(null,原因),t); }); }
直到解决,并使用延迟这些模式为异步操作实现重试逻辑提供了多功能方法。是否使用.catch()或.then()链取决于要求,例如内存使用和最大尝试数量。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3