微信小程序解决异步请求:利用promise将wx.request请求封装成一个全局方法

// 数据请求 wx.request
var sendRrquest = function(url, method, data, header) {
    var status = true;

    var promise = new Promise(function(resolve, reject) {
        wx.getNetworkType({
            success: function(res) {
                // 返回网络类型2g,3g,4g,wifi, none, unknown
                var networkType = res.networkType
                if (networkType == "none") {
                    wx.hideLoading();
                    //没有网络连接
                    wx.showModal({
                        title: '提示',
                        content: '网络连接失败,请检查您的网络设置',
                        showCancel: false,
                        success: function(res) {
                            if (res.confirm) {
                                //返回res.confirm为true时,表示用户点击确定按钮
                                console.log('表示用户点击确定按钮')

                            }
                        }
                    })
                    status = false;
                } else if (networkType == "unknown") {
                    wx.hideLoading();
                    //未知的网络类型
                    wx.showModal({
                        title: '提示',
                        content: '未知的网络类型,请检查您的网络设置',
                        showCancel: false,
                        success: function(res) {
                            if (res.confirm) {
                                //返回res.confirm为true时,表示用户点击确定按钮
                                console.log('表示用户点击确定按钮')
                            }
                        }
                    })
                    status = false;
                } else {
                    wx.request({
                        url: url,
                        data: data,
                        method: method,
                        header: header,
                        success: resolve,
                        fail: reject
                    })

                }
            }
        })
        return status
    });
    return promise;
};


// header 头部
function reqHeader() {
    var header = {
        'content-type': 'application/x-www-form-urlencoded'
    }
    return header
}




// 把方法暴露接口出来供别的页面使用[前面为名字,后面为方法]
module.exports = {
    reqHeader: reqHeader,
    sendRrquest: sendRrquest,
}

页面中

var util = require('../../utils/util.js'),
    header = util.reqHeader();


     util.sendRrquest(url + 'user/getUserInfoDetail', 'GET', data, header)
            .then(function(response) {

    
                    console.log(response)
          
            }, function(error) {
                console.log(error);
            })

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值