小程序请求基于Promise处理

新建一个http.js文件

/**
 * 封装http 请求方法
 */
const BASEURL = 'https://*********'; //服务器api地址
export const http = (params) => {
    const TOKEN = wx.getStorageSync('token') || ''; //  获取token
    var header = {
        "Content-Type": "application/x-www-form-urlencoded"//设置后端需要的常用的格式就好,特殊情况调用的时候单独设置
        // "Content-Type": "application/json"//设置后端需要的常用的格式就好,特殊情况调用的时候单独设置
    }
    // 只要不是登录接口统一添加token
    console.log(params.url, TOKEN);
    if (params.url != 'user/third') {
        header['token'] = TOKEN
    }
    //返回promise 对象
    return new Promise((resolve, reject) => {
        wx.request({
            url: BASEURL + params.url,//服务器url+参数中携带的接口具体地址
            data: params.data,//请求参数
            header: header,
            method: params.method || 'POST', //默认为GET,可以不写,如常用请求格式为POST,可以设置POST为默认请求方式
            dataType: params.dataType || 'json',//返回的数据格式,默认为JSON,特殊格式可以在调用的时候传入参数
            responseType: params.responseType || 'text',//响应的数据类型
            success(res) {
                //接口访问正常返回数据
                if (res.statusCode == 200) {
                    //1. 操作成功返回数据,原则上只针对服务器端返回成功的状态
                    if (res.data.code == 1) {
                        resolve(res.data.data)
                    }
                    //需要特殊处理的接口,可以单独列出来返回数据
                    // else if (params.url == "/order/result" && res.data.retCode == "800020") {//支付结果未知
                    //     //需要特殊处理的接口,可以单独列出来返回数据
                    //     resolve(res.data)
                    // }
                    else {
                        wx.showToast({
                            icon: "none",
                            title: res.data.msg
                        })
                    }
                } else {
                    //2. 操作不成功返回数据,以toast方式弹出响应信息,如后端未格式化非操作成功异常信息,则可以统一定义异常提示
                    wx.showToast({
                        icon: "none",
                        title: res.data.msg
                    })
                }
            },
            fail: function (e) {
                reject(e)
            }
        })
    })
}

使用封装的请求,我这里统一文件夹做请求接口处理

import {
    http
} from './http.js'

var url = {
    userLogin: "user/third",
    getWeRunList: "wxapp/getWeRunData",
}
module.exports = {
    // 登录
    userLogin(obj = {}) {
        return http({
            url: url.userLogin,
            data: obj,
            method: obj.method || 'POST'
        })
    },
    getWeRunList(obj) {
        return http({
            url: url.getWeRunList,
            data: obj,
            method: obj.method || 'POST'
        })
    }
}

在页面中使用api.js

//index.js
import { userLogin, getWeRunList } from '../../util/api.js'
Page({
    getWeRunList({
                     encryptedData: obj.encryptedData,
                    iv: obj.iv
                }).then(res => {
                    console.log(res, '4564565');
                })
})

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值