组件封装(promise) :
uni.addInterceptor("request", {
// 请求拦截器 拦截器触发
invoke(res) {
// if(res.url)
res.url = "https://pcapi-xiaotuxian-front-devtest.itheima.net" + res.url;
},
success(res) {
console.log(res.data);
},
fail(err) {
console.log(err);
},
});
type APIResult = {
code: string;
msg: string;
result: string;
};
export const http = {
get: <T>(url: string, data?: Object, getOption?: UniApp.RequestOptions) => {
return new Promise<T>((resolve, reject) => {
uni.request({
...(getOption || { url, data }),
method: "GET",
success: (res) => {
// 将值返回出去
resolve((res.data as APIResult).result as T);
},
fail: (err) => {
reject(err);
},
});
});
},
post: <T>(url: string, data?: Object, getOption?: UniApp.RequestOptions) => {
return new Promise<T>((resolve, reject) => {
uni.request({
...(getOption || { url, data }),
method: "POST",
success: (res) => {
// 将值返回出去
resolve((res.data as APIResult).result as T);
},
fail: (err) => {
reject(err);
},
});
});
},
put: <T>(url: string, data?: Object, getOption?: UniApp.RequestOptions) => {
return new Promise<T>((resolve, reject) => {
uni.request({
...(getOption || { url, data }),
method: "PUT",
success: (res) => {
// 将值返回出去
resolve((res.data as APIResult).result as T);
},
fail: (err) => {
reject(err);
},
});
});
},
};
其他组件使用方法:
http.请求方式('请求数据',{ 请求传参数据:例 a:3})