🎨 优化

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` #### 自定义错误处理`config.errorHandler`
可以添加到默认配置中,统一处理错误 可以添加到默认配置中,统一处理错误
```typescript ```typescript
axios.defaults.errorHandler = function errorHandler(error) { axios.defaults.errorHandler = function errorHandler(error) {
@ -241,7 +241,7 @@ const instance = axios.create({
}); });
``` ```
也可以发送请求时通过自定义配置传入 也可以发送请求时通过自定义配置传入
```typescript ```typescript
axios('/test', { axios('/test', {
@ -254,7 +254,7 @@ axios('/test', {
#### 自定义平台适配器`config.adapter` #### 自定义平台适配器`config.adapter`
您可以手动适配当前所处的平台 您可以手动适配当前所处的平台
```typescript ```typescript
axios.defaults.adapter = function adapter(adapterConfig) { axios.defaults.adapter = function adapter(adapterConfig) {
@ -316,7 +316,7 @@ axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded
##### 自定义实例默认配置 ##### 自定义实例默认配置
可以创建时传入 可以创建时传入
```typescript ```typescript
const instance = axios.create({ const instance = axios.create({
@ -332,7 +332,7 @@ const instance = axios.create({
}); });
``` ```
也可以创建后修改 也可以创建后修改
```typescript ```typescript
instance.defaults.baseURL = 'https://www.xxx.com'; instance.defaults.baseURL = 'https://www.xxx.com';

View File

@ -2,10 +2,12 @@
* @Author: early-autumn * @Author: early-autumn
* @Date: 2020-04-17 12:18:25 * @Date: 2020-04-17 12:18:25
* @LastEditors: early-autumn * @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 12:33:20 * @LastEditTime: 2020-04-22 09:25:03
*/ */
import { Adapter, Platform } from './types'; import { Adapter, Platform } from './types';
// uniapp
declare let uni: Platform;
// 微信小程序 // 微信小程序
declare let wx: Platform; declare let wx: Platform;
// 支付宝小程序 // 支付宝小程序
@ -16,10 +18,8 @@ declare let swan: Platform;
declare let tt: Platform; declare let tt: Platform;
// QQ 小程序 // QQ 小程序
declare let qq: Platform; declare let qq: Platform;
// uniapp
declare let uni: Platform;
const platformList = [ const stack = [
() => uni.request, () => uni.request,
() => wx.request, () => wx.request,
() => my.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 { function adaptive(): Adapter | undefined {
if (adapter !== undefined) { let adapter: Adapter | undefined;
return adapter;
}
try { try {
const platform = platformList.shift(); const platform = stack.shift();
if (platform === undefined) { if (platform === undefined) {
return; return;
} }
// platform() 可能会导致程序进入 catch
adapter = platform(); adapter = platform();
} catch (err) {}
throw 'next'; if (adapter !== undefined) {
} catch (err) { return adapter;
return adaptive(adapter);
} }
return adaptive();
} }
export default adaptive; export default adaptive;

View File

@ -2,7 +2,7 @@
* @Author: early-autumn * @Author: early-autumn
* @Date: 2020-04-13 18:00:27 * @Date: 2020-04-13 18:00:27
* @LastEditors: early-autumn * @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 { Method, Params, Data, Interceptors, AxiosRequestConfig, AxiosResponse, Axios } from '../types';
import buildURL from '../helpers/buildURL'; import buildURL from '../helpers/buildURL';
@ -54,14 +54,14 @@ export default class AxiosStatic implements Axios {
}, 'reverse'); }, '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 }) { this.interceptors.response.forEach(function executor({ resolved, rejected }) {
promisePesponse = promisePesponse.then(resolved, rejected); promiseResponse = promiseResponse.then(resolved, rejected);
}); });
return promisePesponse; return promiseResponse;
} }
/** /**