在reactjs中收到408或503错误时,我如何重试获取请求?



我正在从服务器获取数据,有时请求需要很长时间,服务器以408状态响应我的代码是这样的

export class ResponseError extends Error {
public response: Response;
constructor(response: Response) {
super(response.statusText);
this.response = response;
}
function parseJSON(response: Response) {
if (response.status === 204 || response.status === 205) {
return null;
}
return response.json();
}
function checkStatus(response: Response) {
if (response.status >= 200 && response.status < 300) {
return response;
}
const error = new ResponseError(response);
error.response = response;
throw error;
}
export async function request(
url: string,
options?: RequestInit,
): Promise<{} | { err: ResponseError }> {
const fetchResponse = await fetch(url, options);
const response = checkStatus(fetchResponse);
return parseJSON(response);
}

如果收到响应状态码408,我如何重试请求

如果你在代码中使用axios来获取api,你可以尝试下面的代码

axios.create().interceptors.response.use(
response => response,
error => {
if (error.response.status === 503){
axios.create().get("YOUR_URL").then((response)=>{
})
}
}
)

最新更新