封装http并挂载到全局

https://www.bilibili.com/video/BV1BJ411W7pX?p=32

具体使用:https://blog.csdn.net/weixin_44763569/article/details/107267124

1)封装前的接口写法

2)封装后的写法

async, await用法:

普通用法:

integral() {
    this.$myRequest({
        url: '/mall/user-integral',
    }).then(res => {
        this.integrall = res.data.integral
    })
}

3)api.js封装:

复制代码
 1 // 全局请求路径,也就是后端的请求基准路径
 2 const BASE_URL = 'http://192.168.31.39:8899/'
 3 // 同时发送异步代码的次数,防止一次点击中有多次请求,用于处理
 4 let ajaxTimes=0;
 5 // 封装请求方法,并向外暴露该方法
 6 export const myHttp = (options)=>{
 7     // 解构请求头参数
 8     let header = {...options.header};
 9     // 当前请求不是登录时请求,在header中加上后端返回的token
10     if(options.url != 'login'){
11         header["client-identity"] = uni.getStorageSync('session_id');
12     }
13     ajaxTimes++;
14     // 显示加载中 效果
15     uni.showLoading({
16         title: "加载中",
17         mask: true,
18     });
19     return new Promise((resolve,reject)=>{
20         uni.request({
21             url:BASE_URL+options.url,
22             method: options.method || 'POST',
23             data: options.data || {},
24             header,
25             success: (res)=>{
26                 resolve(res)
27             },
28             fail: (err)=>{
29                 reject(err)
30             },
31             // 完成之后关闭加载效果
32             complete:()=>{
33                 ajaxTimes--;
34                 if(ajaxTimes===0){
35                     //  关闭正在等待的图标
36                     uni.hideLoading();
37                 }
38             }
39         })
40     })
41 }
复制代码

4)main.js调用:

import { myHttp } from './util/api.js';
Vue.prototype.$http = myHttp;

 https://blog.csdn.net/renxiaoxing55/article/details/112647858

posted @   鼓舞飞扬  阅读(225)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-06-21 闭包
2020-06-21 高阶函数
2020-06-21 js严格模式
2020-06-21 改变函数内this指向方法——call、apply、bind
点击右上角即可分享
微信分享提示