index-BO8-uTDb.js 2.1 KB

1
  1. var C=(y,c,s)=>new Promise((o,u)=>{var d=t=>{try{i(s.next(t))}catch(n){u(n)}},m=t=>{try{i(s.throw(t))}catch(n){u(n)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(d,m);i((s=s.apply(y,c)).next())});import{P as h}from"./index-YMO-C9So.js";import{au as x}from"./entry/index-BaQQ7BQ_.js";import{u as T}from"./index-DBg4ExrS.js";import{R as g,Q as k,a2 as w,aT as v,f}from"./antd-ILpsl5AZ.js";import{d as b,a8 as $,Z as B,a6 as E,a7 as e,k as r,u as a,G as _,$ as R}from"./vue-CF9JqwIh.js";import"./useContentViewHeight-DuQo8tYw.js";import"./useWindowSizeFn-CiJNBK0Q.js";import"./onMountedOrActivated-D34Dt7uC.js";function N(){return x.get({url:"/testRetry"},{retryRequest:{isOpenRetry:!0,count:5,waitTime:1e3}})}const P=R("div",{class:"mt-4"},"打开浏览器的 network 面板,可以看到发出了六次请求",-1),V=R("div",{class:"mt-4"},"错误重试,retryInterval 如果不设置,默认采用简易的指数退避算法,取 1000 * 2 ** retryCount,也就是第一次重试等待 2s,第二次重试等待 4s,以此类推,如果大于 30s,则取 30s ",-1),W=b({__name:"index",setup(y){const c=()=>C(this,null,function*(){yield N()});function s(){return new Promise((n,l)=>{setTimeout(()=>{l(`TimeError: ${Date.now()}`)},1300)})}let o=0;const{loading:u,run:d,cancel:m}=T(s,{manual:!0,retryCount:5,onError(n){o===0&&(f.error("发现错误"),o++);const l=Date.now();f.error(`第 ${o++} 次重试, Time:${l}`)}}),i=()=>{o=0,d()},t=()=>{o=0,m(),f.info("已取消")};return(n,l)=>{const p=$("a-button");return B(),E(a(h),{title:"错误重试"},{default:e(()=>[r(a(g),{gutter:16},{default:e(()=>[r(a(k),{span:8},{default:e(()=>[r(a(w),{title:"Axios 错误重试"},{default:e(()=>[r(p,{onClick:c,type:"primary"},{default:e(()=>[_(" 点击会重新发起请求5次 ")]),_:1}),P]),_:1})]),_:1}),r(a(k),{span:8},{default:e(()=>[r(a(w),{title:"hooks 错误重试"},{default:e(()=>[r(a(v),null,{default:e(()=>[r(p,{onClick:i,type:"primary",disabled:a(u)},{default:e(()=>[_(" 使用 hooks 发起重试 ")]),_:1},8,["disabled"]),r(p,{onClick:t},{default:e(()=>[_("取消")]),_:1})]),_:1}),V]),_:1})]),_:1})]),_:1})]),_:1})}}});export{W as default};