微信小程序解决异步请求:利用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);

            })


————————————————

版权声明:本文为CSDN博主「qinyong^_^」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qinyongqaq/article/details/86702680

你可能感兴趣的:(微信小程序解决异步请求:利用promise将wx.request请求封装成一个全局方法)