为axios请求创建函数

raogr8fs  于 2023-01-30  发布在  iOS
关注(0)|答案(1)|浏览(110)

我尝试创建一个全局函数来处理axios请求,例如postgetdeleteput,因此我创建了一个名为requests.js的文件,例如,对于post请求,我创建了一个名为post()的函数

import axios from 'axios';

export const post = async (url, data, config) => {
    axios.post(url, data, config).then((result)=>{
        return result;
    }).catch((error) => {
        return error;
    });
}

所以现在我想在任何地方调用post请求时使用这个函数而不是直接的axios post调用,例如在data.js中:

import {post} from './requests'

export const postMembersData = (url, data) => {
    return post(url, data);
};

export const postCarsData = (url, data) => {
    return post(url, data);
};

我在index.js中调用postMembersData函数:

const postMembersDataApi = async() => {
        await postMembersData(url, data).then((res)=>{
        console.log(res); // handle data for view

        }).catch((error)=>{
         console.log(error); // handle errors for alert or etc
        });
    }

一切看起来都很好,但有一个问题,当我得到错误,如500或400等,它仍然返回res而不是error在另一方面,它不会返回错误,我做错了什么?

dxxyhpgq

dxxyhpgq1#

尝试在return中运行axios

export const post = async (url, data, config) => {
    return axios.post(url, data, config).then((result)=>{
        return result;
    }).catch((error) => {
        return error;
    });
}

正确返回结果和错误,但返回到post函数作用域,此函数返回undefined。您需要返回从axios返回的内容,以便从post函数返回。

相关问题