• 小程序请求数据过程封装的回调函数方式


    1.定义请求链接公共部分

    1.1.公共的app.js中定义commomurl

     1.2.在util文件夹下面的https.js文件中去调用

     1.3.使用

    2.封装请求主体部分

    const commondata = getApp()
    let statusCode = {
        '1': "网络出错",
        "301": "永久重定向",
        "401": "登录出错",
        "403": "被禁止访问",
        "404": "找不到",
        "405": "错误请求方法",
        "409": "冲突",
        "413": "上传文件太大",
        "500": "服务器错误"
        
    }
    // HTTP类    request函数:HTTP类的方法(类下面的函数称为方法)
    class HTTP{
        request(params){
            if(!params.method){
                params.method = "GET"
            }
            wx.request({
                method: params.method,
                url: commondata.commonurl + params.url,
                data: params.data,
                header: {
                    "content-type": "application/json",
                    "appkey": commondata.appkey
                },
                success: (res) => {
                    let code = res.statusCode.toString()
                    if( code.startsWith("2") ){
                        // 当状态码是2开头的情况
                        if(params.success){
                            params.success(res)
                        }
                    }else{
                        // 当状态码不是2开头的情况
                        this._showError(code)
                    }
                },
                fail: (err) => {
                    // 当断网的情况下,走fail函数
                    this._showError("1")
                }
            })
        }
        // 封装错误弹框类型
        _showError(code){
            wx.showToast({
                "title": statusCode[code] ? statusCode[code] : statusCode[1],
                "icon": "error",
                "duration": 1500
            })
        }
    }
    
    export { HTTP }

    3.在models模块中调用https.js

    3.1.在模块models文件夹下面的classic.js中引入http.js

    import { HTTP } from "../utils/https"

    3.2.在classModel类里面定义getLatest方法

     4.在页面或者组件中使用getLatest方法

    4.1.在js文件中引入models模块的classic.js文件

    import {
        classModel
    } from "../../models/classic"

    4.2.初始化classModel

    let classmodel = new classModel()

    4.3.通过classmodel.getLatest方法来调用后台接口

            let _this = this
            classmodel.getLatest((res) => {
                _this.setData({
                    pagedatas: res.data,
                    likestatus: res.data.like_status,
                    likenum: res.data.fav_nums
                })
                classmodel._tosetNewestIndexStotrage(res.data.index)
            })
  • 相关阅读:
    基于Servlet+JSP+JavaBean开发
    jsp&servlet报红线javax.servlet.jsp.XXXX cannot be resolved to a type类似错误解决办法
    java为什么要定义接口等相关解释
    SpringMVC的注解方式
    MyBatis映射
    hibernate、JDBC 实现 oracle ID 的自动增加 功能
    SSH框架的JSP网站添加数据为什么没反应
    又考完一科 又过完一年
    一个招标书文件的需求分析
    《需求分析》读后感之二
  • 原文地址:https://www.cnblogs.com/pwindy/p/16373675.html
Copyright © 2020-2023  润新知