• 小程序请求数据过程封装的promise方式


    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({url, data={}, method="GET"}){
            let thepromise = new Promise( (resolve, reject) => {
                this._request(url, resolve, reject, data, method)
            })
            return thepromise
        }
    
        _request(url, resolve, reject, data={},  method="GET"){
            wx.request({
                method: method,
                url: commondata.commonurl + url,
                data: data,
                header: {
                    "content-type": "application/json",
                    "appkey": commondata.appkey
                },
                success: (res) => {
                    let code = res.statusCode.toString()
                    if( code.startsWith("2") ){
                        // 当状态码是2开头的情况
                        resolve(res)
                    }else{
                        reject()
                        // 当状态码不是2开头的情况
                        this._showError(code)
                    }
                },
                fail: (err) => {
                    reject()
                    // 当断网的情况下,走fail函数
                    this._showError("1")
                }
            })
        }
    
        // 封装错误弹框类型
        _showError(code){
            wx.showToast({
                "title": statusCode[code] ? statusCode[code] : statusCode[1],
                "icon": "error",
                "duration": 1500
            })
        }
    }
    
    export { HTTP }

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

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

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

    3.2.在bookModel类里面定义subComments方法

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

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

    import {  bookModel  } from "../../models/book"

    4.2.初始化bookModel

    let bookmodel = new bookModel()

    4.3.通过bookmodel.subComments方法来调用后台接口

  • 相关阅读:
    Html/CSS前端如何实现文字边框阴影
    酷炫,用Html5/CSS实现文字阴影
    前端“黑话”polyfill
    JavaScript之DOM对象获取(1)
    你知道二维码是怎么得来的吗?
    Spring5中的DispatcherServlet初始化
    一文搞懂并发和并行
    使用SecureCRT软件运维的配置习惯
    Linux双网卡绑定
    Linux网卡配置文件参数注释
  • 原文地址:https://www.cnblogs.com/pwindy/p/16373754.html
Copyright © 2020-2023  润新知