// 封装一个http 办法let temp_request = [], is_freshing = false;/** * @param {string} url  * @param {string} method  * @param {Object} data  * @param {Boolean} loading  */const http = function(url, method, data, loading) {    let params_ = arguments    return new Promise((resolve, reject) => {        if(loading) {            uni.showToast({                title: '加载中',                icon: 'loading',                duration: 10000,                // mask: true            })        }        data.token = uni.getStorageSync('api_token')        uni.request({            url: url,            method,            data,            success(res) {                if(loading){                    uni.hideToast({                        title: '加载中',                        icon: 'loading',                        duration: 10000,                    })                }                let code = res.data.code                switch (code) {                    case 0: resolve(res.data.data);break;                    case 200:                         // other handlers                        break                    case 401:                        // token 过期                        if(!is_freshing) {                            refresh()                        }                        // 关键步骤~~~~                        resolve(new Promise(reslove => {                            temp_request.push(() => {                                reslove(request(...params_))                            })                        }))                        break;                    default:                         reject(res.data.data)                }            },            fail(error) {                reject(error.data.data)            },            complete(res) {            }        })    })}function refresh() {    is_freshing = true    // 这里用的uni-app 获取微信code, 原生微信小程序 wx.login()    uni.login({        provider: 'weixin',        success: function (loginRes) {            http('/mob/auth/login/miniProgram', 'post', {code}, true)            .then((res) => {                uni.setStorageSync('api_token', res.token)                is_freshing = false                temp_request.map(cb => cb())                // 清空temp_request                temp_request = []            })            .catch((res) => {                uni.hideLoading();            })        }    });    }, 1500)}export default http//  测试onShow() {    // 在token过期的状况下,派发三个须要token的申请    http({url1, 'get'})    .then((res) => {        console.log(res)    })    http({url1, 'get'})    .then((res) => {        console.log(res)    })    http({url1, 'get'})    .then((res) => {        console.log(res)    })}