1.首先来个封装获取数据的 Promise方法
function getData(){
let p = new Promise((resolve,reject)=>{
setTimeout(()=>{
// 定义一个随机数
let num = Math.ceil(Math.random()*20)
// 小于这个随机数 那么就是成功 反之就是失败
if ( num <= 20) return resolve(num)
if ( num>20) return reject('失败了 憨憨')
},1000)
})
// 返回出去 p
return p
}
2.有失败重试功能的函数 myGetData()
function myGetData(getData,times,delay){
// 返回一个 Promise对象
return new Promise((resolve,reject)=>{
// 定义重试函数
function again(){
getData().then(resolve).catch(err=>{
console.log(还有 ${times} 次尝试
)
if(times ==0){
reject(err)
}else{
times--
setTimeout(again(), delay)
}
})
}
// 调用方法
again()
)}
)
3.// 执行函数,五次重试,每隔一秒执行一次
myGetData(getData,5,1000)
问题内容: 我已经看到您可以指定如果ajax请求失败通常要做什么,是否可以让它在某种循环中重试,以便它在停止之前尝试至少x次?我以前使用过此代码: 这将适用于所有AJAX请求(如果我输入错了,请纠正我)。 我想做这样的事情: 这行得通吗?甚至更好:这是正确的方法吗?我会将重试包装在计数系统中,以便不会无限重试。在我的应用程序中,十分之九会正常工作,但是我经常与之交互的API之一有时会返回错误。 任
本文向大家介绍请用js实现一个promise的方法相关面试题,主要包含被问及请用js实现一个promise的方法时的应答技巧和注意事项,需要的朋友参考一下 面试够用版 大厂专供版 参考自https://juejin.im/post/5c9c3989e51d454e3a3902b6
问题内容: 我试图了解其工作原理: 如果我把它们放在列表中 这有效 但这不是: 我究竟做错了什么?如何获得 sum() 来工作? 更新 我的问题是如何在支持的对象列表上使用总和,需要使其尽可能通用。 问题答案: 您还需要定义才能使它起作用。 是 反向添加 。当Python尝试评估时,它首先尝试调用。如果失败,则返回到。 这样,您仅需触摸一个班级即可覆盖加法。例如,考虑Python如何评估。尝试进行
我有一个异步块: 我可以跟踪成功和失败的结果。但是,是否可以重试整个chain?然后继续重试,直到问题解决?
本文向大家介绍PHP自动重命名文件实现方法,包括了PHP自动重命名文件实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP自动重命名文件实现方法。分享给大家供大家参考。具体方法分析如下: PHP重命名文件名我们在实际开发过程中经常会使用到,比如用户上传文件或是一些缓存文件自动生成的功能我们都需要使用到自动重命名功能。但一般我们在制作上传文件时命名方式都是使用取系统当前时间加上随时
我创建了一个(个人、学生、员工、教职员工)类。Person必须将Student和Employee分为子类。Employee有两个子类:教员和职员。我已经完成了所有的编码,他们工作得很好,除了我的驱动程序类TestPerson程序给出了编译错误 注:一个测试程序,创建一个人、学生、员工、教职员工,并调用他们的toString方法。 驱动程序类TestPerson的错误。以下是java:- **我只是