基于promise的小程序代码api封装。
新建promise.js,用es6类封装的方法。
export class request{
constructor(url,data) {
this.url = url
this.data = data
}
request(method){
return new Promise((resolve,reject)=>{
uni.request({
url: this.url,
method: method,
data: this.data,
header:uni.getStorageSync('token')?{
token:uni.getStorageSync('token').token
}:{},
success: res => {
console.log(res)
if((res.data&&res.data.code == 0)||(res.data&&res.data.shopCode == 0)){
resolve(res)
} else {
uni.showModal({
content: res.data.msg?res.data.msg:res.data.result.error_msg,
showCancel: false,
confirmText: '确定'
});
}
uni.hideLoading();
},
fail: (err) => {
resolve(undefined)
uni.hideLoading();
uni.showToast({
title:'网络跑丢了',
icon:'none',
duration:2000
})
}
});
})
}
post(){
return this.request("POST")
}
get(){
return this.request("GET")
}
}
新建request.js
import {request} from './promise.js'
export const post=({url,data})=>{
return new request(url,data).post()
}
export const get=({url,data})=>{
return new request(url,data).get()
}
新建api.js,所有请求写在这里。
import {
post,
get
} from './request'
const BASE_URL = 'http://192.168.2.117:8081/hefashop-api/app'
// 获取收藏列表
export const GET_COLLECT_GOODS = (data) =>{
let url = BASE_URL + `/collect/list`
return get({url,data})
}
调用方式test.wxml
import {GET_COLLECT_GOODS} from '../../api/api.js'
Page({
data:{}
onLoad:function(options){
wx.showLoading({
title:''
})
let that =this
let data={
userId:wx.getStorageSync('unionId'),
page:that.data.page,
limit:that.data.limit
}
GET_COLLECT_GOODS(data)
.then((res)=>{
console.log(res,'收藏列表')
})
}
})
有帮到小伙伴请关注,留言,前端小技巧不定期更新,欢迎投稿。
网友评论