🎨 优化
parent
f8155b795a
commit
112fcfcd22
10
README.md
10
README.md
|
@ -225,7 +225,7 @@ axios('/test', {
|
|||
|
||||
#### 自定义错误处理`config.errorHandler`
|
||||
|
||||
可以添加到默认配置中,统一处理错误
|
||||
可以添加到默认配置中,统一处理错误。
|
||||
|
||||
```typescript
|
||||
axios.defaults.errorHandler = function errorHandler(error) {
|
||||
|
@ -241,7 +241,7 @@ const instance = axios.create({
|
|||
});
|
||||
```
|
||||
|
||||
也可以发送请求时通过自定义配置传入
|
||||
也可以发送请求时通过自定义配置传入。
|
||||
|
||||
```typescript
|
||||
axios('/test', {
|
||||
|
@ -254,7 +254,7 @@ axios('/test', {
|
|||
|
||||
#### 自定义平台适配器`config.adapter`
|
||||
|
||||
您可以手动适配当前所处的平台
|
||||
您可以手动适配当前所处的平台。
|
||||
|
||||
```typescript
|
||||
axios.defaults.adapter = function adapter(adapterConfig) {
|
||||
|
@ -316,7 +316,7 @@ axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded
|
|||
|
||||
##### 自定义实例默认配置
|
||||
|
||||
可以创建时传入
|
||||
可以创建时传入。
|
||||
|
||||
```typescript
|
||||
const instance = axios.create({
|
||||
|
@ -332,7 +332,7 @@ const instance = axios.create({
|
|||
});
|
||||
```
|
||||
|
||||
也可以创建后修改
|
||||
也可以创建后修改。
|
||||
|
||||
```typescript
|
||||
instance.defaults.baseURL = 'https://www.xxx.com';
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
* @Author: early-autumn
|
||||
* @Date: 2020-04-17 12:18:25
|
||||
* @LastEditors: early-autumn
|
||||
* @LastEditTime: 2020-04-21 12:33:20
|
||||
* @LastEditTime: 2020-04-22 09:25:03
|
||||
*/
|
||||
import { Adapter, Platform } from './types';
|
||||
|
||||
// uniapp
|
||||
declare let uni: Platform;
|
||||
// 微信小程序
|
||||
declare let wx: Platform;
|
||||
// 支付宝小程序
|
||||
|
@ -16,10 +18,8 @@ declare let swan: Platform;
|
|||
declare let tt: Platform;
|
||||
// QQ 小程序
|
||||
declare let qq: Platform;
|
||||
// uniapp
|
||||
declare let uni: Platform;
|
||||
|
||||
const platformList = [
|
||||
const stack = [
|
||||
() => uni.request,
|
||||
() => wx.request,
|
||||
() => my.request,
|
||||
|
@ -29,30 +29,27 @@ const platformList = [
|
|||
];
|
||||
|
||||
/**
|
||||
* 设置当前平台适配器
|
||||
*
|
||||
* 使用 try + catch递归 的方式实现平台的查找, 解决 typescript 开发时, wx,my,... 等全局变量未定义可能会报错导致程序被中止的问题
|
||||
*
|
||||
* 比如 ReferenceError: wx is not defined
|
||||
* 自适应当前平台
|
||||
*/
|
||||
function adaptive(adapter?: Adapter): Adapter | undefined {
|
||||
if (adapter !== undefined) {
|
||||
return adapter;
|
||||
}
|
||||
function adaptive(): Adapter | undefined {
|
||||
let adapter: Adapter | undefined;
|
||||
|
||||
try {
|
||||
const platform = platformList.shift();
|
||||
const platform = stack.shift();
|
||||
|
||||
if (platform === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
// platform() 可能会导致程序进入 catch
|
||||
adapter = platform();
|
||||
} catch (err) {}
|
||||
|
||||
throw 'next';
|
||||
} catch (err) {
|
||||
return adaptive(adapter);
|
||||
if (adapter !== undefined) {
|
||||
return adapter;
|
||||
}
|
||||
|
||||
return adaptive();
|
||||
}
|
||||
|
||||
export default adaptive;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: early-autumn
|
||||
* @Date: 2020-04-13 18:00:27
|
||||
* @LastEditors: early-autumn
|
||||
* @LastEditTime: 2020-04-21 11:10:19
|
||||
* @LastEditTime: 2020-04-21 20:19:49
|
||||
*/
|
||||
import { Method, Params, Data, Interceptors, AxiosRequestConfig, AxiosResponse, Axios } from '../types';
|
||||
import buildURL from '../helpers/buildURL';
|
||||
|
@ -54,14 +54,14 @@ export default class AxiosStatic implements Axios {
|
|||
}, 'reverse');
|
||||
|
||||
// 发送请求
|
||||
let promisePesponse = promiseRequest.then(dispatchRequest) as Promise<AxiosResponse<T>>;
|
||||
let promiseResponse = promiseRequest.then(dispatchRequest) as Promise<AxiosResponse<T>>;
|
||||
|
||||
// 执行响应拦截器
|
||||
this.interceptors.response.forEach(function executor({ resolved, rejected }) {
|
||||
promisePesponse = promisePesponse.then(resolved, rejected);
|
||||
promiseResponse = promiseResponse.then(resolved, rejected);
|
||||
});
|
||||
|
||||
return promisePesponse;
|
||||
return promiseResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue