1、修改index.ts
src/index.ts添加取消任务代码:
2、修改types.ts
src/axios/types.ts添加类型:
3、添加cancel.ts
src/axios目录下添加cancal.ts文件
export class Cancel {
message: string;
constructor(message: string) {
this.message = message;
}
}
export function isCancel(error: any){
return error instanceof Cancel
}
export class CancelToken {
public resolve: any;
source() {
return {
token: new Promise( (resolve) => {
this.resolve = resolve;
}),
cancel: (message: string) => {
this.resolve(new Cancel(message));
},
};
}
}
4、修改Axios.ts
src/axios/Axios发送请求之前添加对cancelToken是否配置判断:
5、修改index.ts
src/axios/index将方法绑定在axios上
6、效果
7、源代码
代码地址:https://gitee.com/linhexs/handwritten-axios/tree/6.cancel-task/
本章完结!!!