我正在尝试为我的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本身中取消请求(我想)。有没有人已经实现了这一点,可以在这里为我提供帮助?
谢谢