美文网首页程序员
微信小程序es6的class请求封装

微信小程序es6的class请求封装

作者: 关贺 | 来源:发表于2020-06-01 11:02 被阅读0次

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

    有帮到小伙伴请关注,留言,前端小技巧不定期更新,欢迎投稿。

    相关文章

      网友评论

        本文标题:微信小程序es6的class请求封装

        本文链接:https://www.haomeiwen.com/subject/uyyjzhtx.html