【发布时间】:2022-01-23 22:42:33
【问题描述】:
我想在数据库离线或后端连接出现问题时停止请求,但我不知道该怎么做。
我的axios设置如下:
import axios from "axios";
import AsyncStorage from '@react-native-async-storage/async-storage';
const baseURL = 'http://192.168.1.43:4000/server';
const gestorMedicoApi = axios.create({ baseURL});
gestorMedicoApi.interceptors.request.use(
async (config) => {
const token = await AsyncStorage.getItem('token');
if (token) {
config.headers!['x-token'] = token;
}
return config;
}
)
export default gestorMedicoApi;
请求示例如下:
const signUp = async ({ nombreEmpresa, email, telefono, contraseña }: RegisterData) => {
try {
const resp = await gestorMedicoApi.post<Response>('/user/createUser', { nombreEmpresa, email, telefono, contraseña });
dispatch({
type: 'signUp',
payload: {response: resp.data}
})
} catch (error: any) {
dispatch({ type: 'addError', payload: {response: {status: "NOK", message: "Se ha producido un error al conectar con la base de datos."}} })
}
};
如果下一行失败:
const resp = await gestorMedicoApi.post<Response>('/user/createUser', { nombreEmpresa, email, telefono, contraseña });
流程进入catch,但请求一次又一次尝试连接,所以如果失败我想停止请求。
我怎样才能得到它?
【问题讨论】:
-
"...但是请求一次又一次地尝试连接..." 什么代码在这样做? Axios 本身不会重复请求。无论代码在做什么,重复都是您必须修复/更改的代码,而不是 axios。
-
您可以在这里使用 AbortController、示例和文档axios-http.com/docs/cancellation
-
你可以在这里找到答案Check this
标签: javascript reactjs typescript react-native axios