`
// 模拟请求
const requestData = (data)=> {
return new Promise((resolve, reject) => {
setTimeout(()=>{
if(data) {
resolve("成功")
}else {
resolve("失败")
}
}, 1000)
})
}
useEffect(()=>{
let timer;
const sendRequest = (boolean: boolean)=>{
// 发送请求
requestData(boolean).then((res)=>{
console.log(res);
if(res == "成功") {
// 判断返回成功,重新发送请求
timer = setTimeout(()=>{
sendRequest(false)
},10000)
}else {
// 超时或返回失败,可自定义处理
timer = setTimeout(()=>{
sendRequest(true)
},10000)
}
})
}
// 开始发送一次
sendRequest(true);
// 清理定时器
return ()=>{
clearTimeout(timer);
}
},[])`