Open openks opened 4 years ago
上一段多次尝试获取同一接口逻辑有误 用超时时间作为间隔时间不符合要求
该逻辑以请求返回后仍为未知,等待间隔时间后再发请求
function getTimeByTimes(times) {
if (times < 6) {
return 2000
} else if (times < 11) {
return 1000
} else if (times < 21) {
return 500
} else {
return null
}
}
function TryAndGetResult() {
let times = 0
async function requestData(){
console.log("第",times,"次请求")
let res = await this.getRequest()
if(!res){
times=times+1
let timeProid = this.getTimeByTimes(times)
if(timeProid === null ){
console.log("第",times-1,"次请求依旧失败")
//设置为失败
return
}else{
setTimeout(requestData,timeProid)
}
}
}
requestData()
}
function request(param) {
return new Promise((resolve) => {
let time = Math.random() * 1000
setTimeout(() => resolve({param, time}), time)
})
}
async function getRequest() {
try {
// console.log("请求---发送")
let res = await request("ddddd")
// console.log("请求--返回")
return false
} catch (error) {
return false;
}
}
TryAndGetResult()
new与原型链问题
代码格式转换题
多次尝试调取同一接口
支付相关借口很重要,需要及时获取结果 结果可能有三种情况 1.成功 2.失败 3.未知 想要实现逻辑如下: 1-5次每次间隔2秒
6-10次每次间隔1秒
11-20次每次间隔0.5秒
若20次后结果依旧是未知则提示失败
具体实现方案如下