h5通用网络模块
- 统一封装各端的网络模块,请求拦截处理
- 统一网络错误处理,上报
- 统一网络相关等UI展示(错误提示,loading,等等)
import { get, post } from adFeRequest;
let res = await get('/yourPath', params);
let res = await post('/yourPath', params);
你可以设置type参数:(默认'lte')
let res = await post('/yourPath', params, { type: 'lte'});
这个请求会展示loading动画,并且再有错误时,会抛出异常,并展示toast信息
type参数有7种可选:
lte : 展示loading动画,抛出异常,展示toast信息
lt : 展示loading动画,展示toast信息
te : 抛出异常,展示toast信息
le : 展示loading动画,抛出异常
l : 展示loading动画
t : 展示toast信息
e : 展示toast信息
- 如果你想在每个请求发送前做一些事情,你可以设置before参数:
let res = await post('/yourPath', params, { before: (args) => {
// do something
}});
before方法的参数是你传入的path和params.
- 如果你想在每个请求响应后做一些事情,你可以设置after参数:
let res = await post('/yourPath', params, { after: (ret) => {
// do something
}});
after方法的参数是你请求返回的结果
- 当你在使用hook时,经常会遇到要终止请求的需求,你可以使用AopException:
import { get, post, AopException, AOP_EXCEPTION_TPYE } from adFeRequest;
let res = await post('/yourPath', params, { before: (args) => {
throw new AopException(AOP_EXCEPTION_TPYE.RETURN, {result: 1, a: 1});
}});
console.log(res);
// {result: 1, a: 1}
请求将不再发送,直接以你传入的第二个参数作为结果返回 在after里也是一样:
import { get, post, AopException, AOP_EXCEPTION_TPYE } from adFeRequest;
let res = await post('/yourPath', params, { after: (ret) => {
throw new AopException(AOP_EXCEPTION_TPYE.RETURN, {result: 1, a: 1});
}});
console.log(res);
// {result: 1, a: 1}
请求发出后会被替换为你传入的数据作为结果返回(通常你可以用它来做结果的统一格式化)
- 如果你想改变请求的参数:
import { get, post, AopException, AOP_EXCEPTION_TPYE } from adFeRequest;
let res = await post('/yourPath', params, { before: (...args) => {
throw new AopException(AOP_EXCEPTION_TPYE.CONTINUE, {path: '/yourPath', params: {}});
}});
这里的AopException的第一个参数type决定用哪种方式返回,它有以下几个选项(默认是ignore):
return: 直接以当前aop的结果作为目标函数的结果返回,返回用promise外包
continue: 以当前aop函数的输出结果作为目标函数的参数
ignore: 忽略
###测试
npm run dev
默认url :http://localhost:8091