微信小程序请求封装(Promise解决异步请求)

发布时间:2019-06-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了微信小程序请求封装(Promise解决异步请求)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

开始 代码是

//network.js

function POST(url,params) {
    wx.request({
        url: url,
        data: params,
        method: 'GET',
        success: function (res) {
            console.LOG('返回结果:')
            console.log(res.data)
            return res.data
        }
    })
}

//login.js
const network = require('../../../utils/network.js');
...
//登录
login: function (login_res) {
    login_res = login_res.detail.value
    
    VAR url = app.globalData.baseUrl + 'api/login'
    var params = {
        username: login_res.username,
        password: login_res.password
    }
    
    var user_data = network.POST(url,params)
    console.log(user_data)
}

发现这取不到值,因为小程序的请求是异步的。
查资料说需要用到promise

ojbk

查资料+摸索
最终代码如下:

//network.js

const app = getApp()

function POST(url, params) {
    let PRomise = new Promise(function (resolve, reject) {
        wx.request({
            url: url,
            data: params,
            method: 'POST',
            success: function (res) {
                console.log('返回结果:')
                console.log(res.data)
                app.netWorkData.result = res.data
                resolve();
            }
        })
    });
    return promise
}
module.exports = {
    POST: POST
}

//app.js
App({
    netWorkData:{
        result: { code: -1, msg: '发起请求失败' }
    }
})

//登录
    login: function (login_res) {
        login_res = login_res.detail.value

        var url = app.globalData.baseUrl + 'api/login'
        var params = {
            username: login_res.username,
            password: login_res.password
        }

        network.POST(url,params).then(() => {
            //请求成功的操作
            var user_data = app.netWorkData.result
            
        });
    },

成功
oooojbk

脚本宝典总结

以上是脚本宝典为你收集整理的微信小程序请求封装(Promise解决异步请求)全部内容,希望文章能够帮你解决微信小程序请求封装(Promise解决异步请求)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。