回调函数封装http之调用

回调函数封装http之调用

1、创建http.js

文件路径:miniprogram\utils\http.js
内容:
import {config} from '../config.js'

const tips = {
  1: '抱歉,出现了错误'
}

class HTTP{
   request(params){
     if(!params.method){
       params.method ="GET"
     }
     wx.request({
      url: config.api_base_url+params.url,
       method: params.method,
       header: params.header,
       data: params.data,
       success:(res)=>{
         let code = res.statusCode.toString()
         //请求返回状态首字为2的表示成功;
         if(code.startsWith('2')){
           //如果params有success不为空,则执行后面的语句;
           params.success && params.success(res.data)
         }
         else{
           let error_code = res.data.error_code
           this._show_error(error_code)
         }
       },
       fail:(err)=>{
          this._show_error(1)
       }    
     })
   } // end request;

   //错误提示
   _show_error(error_code){
     if(!error_code){
       error_code =1
     }
     const tip = tips[error_code]
     wx.showToast({
       title: tip?tip:tips[1],
       icon: 'none',
       duration: 2000
     })
   }
}
export {HTTP}

2、封装业务逻辑之models

文件路径:miniprogram\models\init.js
文件内容:
import { HTTP } from '../utils/http.js'

class FirstModel extends HTTP {
  //传递的参数为回调函数
  getAreas(sCallback){
    let store = wx.getStorageSync("AREA")
    if(!store)
    {
      this.request({
        url: '/domain/',
        success: (res) => {
          sCallback(res)
          wx.setStorageSync("AREA", res)
        }
      })
    }
    else
    {
      sCallback(store)
    }
  } // getArea end;

  //首页根据会议地获取相应会议室信息;
  getDefaultRoom(fun_callback,area){
     this.request({
       url: '/mee?area=' + area,
       success: (res)=>{
         fun_callback(res)
       }
     })
  }

  //根据会议地获取相应会议室列表;
  getRoom_ByArea(fun_callback,area){
     this.request({
       url: '/room/?area=' + area,
       success: (res)=>{
         fun_callback(res)
       }
     })
  }

  //获取部分信息
  getDeparts(fun_callback){
    let store = wx.getStorageSync("DEPART")
    if(!store)
    {
      this.request({
        url: '/depart/',
        success: (res) => {
          fun_callback(res)
          wx.setStorageSync("DEPART", res)
        }
      })
    }
    else
    {
      fun_callback(store)
    }
  }
} // class end ;

export { FirstModel}

3、回调函数在小程序js的应用

3.1 引入文件

import { FirstModel } from '../../models/Init.js'

3.2 实例化对象

const firstModel = new FirstModel()

3.3 回调函数应用

 //数据后台初始化数据;
  //ES6语法
  initAreas(){
    firstModel.getAreas(res=>{
      res.forEach((item)=>{
        this.setData({
          areas: this.data.areas.concat(item.area)
        })
      })
    })
  },
//根据会议地+会议室+月份获取数据
  getmeetlist(v_area,v_room,v_month){
    var that = this
    that.setData({
      items: []
    })
    //优化代码,使用扩展运算符,使代码优雅简洁
    meetModel.getmeetlist(res =>{
      this.setData({
        items: this.data.items.concat(...res),
        isTouchMove: false
      })
    }, v_area, v_room, v_month)
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值