axios-miniprogram/src/core/createError.ts

46 lines
1.1 KiB
TypeScript
Raw Normal View History

2021-05-11 10:22:44 +08:00
import { AxiosRequestConfig, RequestConfig, AxiosResponse, AxiosError } from '../types';
/**
* AxiosError Error
*/
class AxiosErrorClass extends Error implements AxiosError {
public isAxiosError = true;
/**
* @param message
* @param config Axios
* @param request
* @param response Axios
*/
public constructor(
message: string,
public config: AxiosRequestConfig,
public request: RequestConfig,
public response?: AxiosResponse
) {
super(message);
// 修复继承系统自带类 prototype 设置失败的问题
Object.setPrototypeOf(this, AxiosErrorClass.prototype);
}
}
/**
* AxiosError
*
* AxiosError
*
* @param message
* @param config Axios
* @param request
* @param response Axios
*/
export default function createError(
message: string,
config: AxiosRequestConfig,
request: RequestConfig,
response?: AxiosResponse
): AxiosError {
return new AxiosErrorClass(message, config, request, response);
}