微信小程序es6的class請求封裝

基於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,'收藏列表')
        })
    }

})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章