executor(c) {cancel = c;})这里面的c是别人已经封装号的一个函数吗?
来源:1-4 内容组件--取消前一次请求
前端SoEasy
2019-07-07 22:19:50
import axios from 'axios';
import {SUCC_CODE, TIMEOUT} from './config';
const CancelToken = axios.CancelToken;
let cancel;
// 获取内容数据--ajax
export const getCategoryContent = (id) => {
cancel && cancel('取消了前一次的请求');
cancel = null;
return axios.get(`http://www.imooc.com/api/category/content/${id}`, {
timeout: TIMEOUT,
cancelToken: new CancelToken(function executor(c) {
cancel = c;
})
}).then(res => {
if (res.data.code === SUCC_CODE) {
return res.data.content;
}
throw new Error('没有成功获取到数据!');
}).catch(err => {
if (axios.isCancel(err)) { // 取消前一次的请求
console.log(err);
} else {
// handle error
console.log(err);
}
});
};
1回答
同学你好, 是的哦, c是别人已经封装好的方法, 我们直接使用即可哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题