栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

写一个方法实现promise失败后自动重试

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

写一个方法实现promise失败后自动重试

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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374964.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号