【问题标题】:How to stop a request in Axios?如何在 Axios 中停止请求?
【发布时间】: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


【解决方案1】:

axios 不会重复请求。您的组件可能正在重新渲染或卡在循环中,该循环不断地调用您的注册函数。请重新检查您的代码,如果可能,请提供更多的 sn-ps。

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 2016-11-14
    • 2017-04-04
    • 2022-01-15
    • 2019-11-08
    • 1970-01-01
    • 2017-11-28
    相关资源
    最近更新 更多