🎨 优化

pull/1/head
954270063@qq.com 2020-04-22 09:29:23 +08:00
parent f8155b795a
commit 112fcfcd22
3 changed files with 23 additions and 26 deletions

View File

@ -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';

View File

@ -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;

View File

@ -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;
}
/**