没有使用获取时取消axios请求

时间:2020-07-27 19:23:13

标签: react-native axios

我正在尝试为我的axios帖子实现取消请求功能。我为函数创建了自己的js文件,并将其导入到屏幕中。这是一个例子

App.js

        cancelToken.current = axios.CancelToken.source()
        async function getFeed() {
        let x = await service.getUserFeed(user_id, cancelToken);
        setData(x); }
getFeed();
      return () => {
         cancelToken.cancel();
                               }
   },[user_id]);

service.js:

 getUserFeed: async (token, user_id, source) => {
        let x;
        await axios.post(Default.apiEndpoint + 'feed',
            {

            },
            {
                cancelToken: source.token,
                headers: {
                    'Accept': "application/json",
                    'Content-Type': "application/json",
                    'user_id': user_id,
                }
            }).then(response => {
                x = response.data;
            }).catch(error => {
                if (axios.isCancel(error)) {
                    console.log('Request canceled', error.message);
                }
                else {
                    x = error.response.status;
                }
            });
        return x;
    },

如果我在挂钩本身中调用请求,则它正在工作。因此,我什至不确定(如果可能),因为当用户离开页面时,不会触发请求。因此,我需要在service.js本身中取消请求(我想)。有没有人已经实现了这一点,可以在这里为我提供帮助?

谢谢

0 个答案:

没有答案