微信小程序request请求后隐藏提示框问题

2018-12-29  本文已影响0人  风起长林时

微信小程序request请求后complete比success和fail执行时机稍后,也就是说,如果在success里有回调函数,那么complete中的业务逻辑会稍后才会执行,可能有一些意想不到的bug存在。

最近在做小程序,之前写的请求公用方法,在请求前,弹出loading框,请求完成complete中隐藏了loading框。但是突然有一个需要要上传图片,因为图片上传和普通字段数据请求是分开的两个接口。也就是说普通字段上传成功后,图片才能上传。

但是图片比较大的话,就需要使用loading框。于是我最开始的代码是这么写的:、

//公用post方法
//隐藏loading框的业务处理是在complete中
function post(params, noNeedLoading) {
    if (!noNeedLoading) {
        wx.showLoading({
            title: '加载中',
            mask: true
        });
    }
    wx.request({
        method: 'POST',
        url: config.HTTP_BASE_URL + params.url,
        data: params.data,
        header: { 'content-type': 'application/x-www-form-urlencoded' },
        success: function(res) {
            if (params.success) {
                params.success(res.data);
            }
        },
        fail: function(res) {
            if (params.fail) {
                params.fail(res.errMsg);
            } else {
                wx.showModal({
                    title: '提示',
                    showCancel: false,
                    content: '请检查网络'
                });
            }
        },
        complete: function() {
            wx.hideLoading();
        }
    });
};

上一篇下一篇

猜你喜欢

热点阅读