uniapp中使用vue语法封装接口

前言:使用uniapp开发移动端,uniapp使用的是vue的语法,小程序的api,所以使用起来比较容易上手

1.新建一个js,request.js
2.在request.js中封装接口,封装了同步和异步两种形式的接口,又分为普通封装和promise封装

具体代码如下:

//服务器ip
const baseUrl="http://ip:port";
const wechatUrl="微信url";
//本地ip
const localUrl="http://ip:port"
var tempUrl=baseUrl;
let header={};
//异步封装,flag=1 baseUrl,flag=2 wechatUrl
let getRequest = (flag,url,params) => {
	if(flag==2){
		tempUrl=wechatUrl;
	}
	 return	uni.request({
			url:tempUrl+url,
			header:header,
			data:params,
			dataType:'json',
			method:'GET'
		})
};
let postRequest = (flag,url,params) => {
	if(flag==2){
		tempUrl=wechatUrl;
	}
	 return	uni.request({
			url:tempUrl+url,
			header:header,
			data:params,
			dataType:'json',
			method:'POST'
		})
};
//同步封装
let promisePostRequest = (flag,url,params) => {
	if(flag==2){
		tempUrl=wechatUrl;
	}
	return new Promise((resolve, reject) => {
	        uni.request({
	            url:tempUrl+url,
	            header:header,
	            data:params,
	            dataType:'json',
	            method:'POST',
	            success: (res) => {
	                console.log(res)
	                resolve(res);
	            },
	            fail: (err) => {
	                reject(err)
	            }
	        });
	    })
}
let promiseGetRequest = (flag,url,params) => {
	if(flag==2){
		tempUrl=wechatUrl;
	}
	return new Promise((resolve, reject) => {
	        uni.request({
	            url:tempUrl+url,
	            header:header,
	            data:params,
	            dataType:'json',
	            method:'GET',
	            success: (res) => {
	                console.log(res)
	                resolve(res);
	            },
	            fail: (err) => {
	                reject(err)
	            }
	        });
	    })
}
export default{
	getRequest,
	postRequest,
	promisePostRequest,
	promiseGetRequest,
	baseUrl,
	wechatUrl,
	localUrl
}

接口封装完成之后,便可以在其他页面直接调用接口,但是需要注意的是vue页面中调用同步接口的话要使用async+await,异步接口正常使用!!!

 //同步接口一,不带回调
async courseChance(){
	let chance=await this.request.promiseGetRequest(1,'接口地址',{参数});
					 // console.log(chance)
	 if(chance.data.code==0){
			this.stuRatio=chance.data.series;
	 }else{
			console.log("数据发生异常");
		  }
	 }


//同步接口二,带回调					
async stuStatics(){
		let check=await this.request.promiseGetRequest(1,'接口地址',{参数})
		.then(res=>{
				// console.log(res.data)
				//定义数组或list
				var dataparam=[];
				var normal=[];
				var ask=[];
				var late=[];
				var early=[];
				var len=res.data.series;
				if(res.data.code==0){
				 	for(var i=0;i<len.length;i++){				 									
				 		dataparam.push(len[i].name);
						normal.push(len[i].normal);
						ask.push(len[i].ask);
						late.push(len[i].late);
				 		early.push(len[i].early);
				}
			this.lineInitStatics(dataparam,normal,ask,late,early)
				}
				})
				 					
	 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值