lei-mu / luch-request

luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。
https://www.quanzhan.co/luch-request/
MIT License
632 stars 96 forks source link

请求锁功能 #118

Open RamirezET opened 1 year ago

RamirezET commented 1 year ago

例如某个页面要请求多个接口,接口均需要token,此时token不存在或过期,这多个请求就会一起去请求token,能否提供一个功能类似是这样,请求前锁定,验证token有效或者无效了拿回真正token后,unlock同时发出的请求继续执行,这样就不会同时去请求token

request.interceptors.request.use((config) => {
    return new Promise((resolve, reject) => {
        // console.log("请求拦截器");
        request.lock()
        getAccessToken()
            .then((data) => {
                const {
                    tokenType,
                    value
                } = data
                config.headers['Authorization'] = tokenType + ' ' + value
                resolve(config)
                request.unlock()
            })
            .catch((error) => {
                request.unlock()
                reject(error)
            })
    })
})

当然也可以在每个请求resolve之后再执行下一个请求,但不那么优雅

谢谢大佬

lei-mu commented 1 year ago

这个事,现在是有解决方案的。就是无痛刷新token. 只不过没有集成到插件里,看后期能不能弄进去吧