「React Native」接口防一段时间内重复请求

export default class UrlCache {
    static cacheUrls: Map<any, number> = new Map()
    /**
     * @function 处理缓存url
     * @param url 
     * */
    static filterRepeatUrl(url: RequestInfo): boolean {
        let currentTimeStamp = (new Date()).getTime();
        let isCache = false
        if (this.cacheUrls.size > 0) {
            for (let [key, value] of this.cacheUrls) {
                if (key === url) {
                    isCache = true
                    if ((currentTimeStamp - value) / 1000 > 3) {
                        this.cacheUrls.set(url, currentTimeStamp)
                        return true
                    }
                }
            }
        }
        if (!isCache) {
            this.cacheUrls.set(url, currentTimeStamp)
            return true
        }
        return false
    }

    static clearCache() {
        this.cacheUrls.clear()
    }
}

将请求所有的接口缓存,并存储请求的时间戳,在3秒内,重复请求,即会返回false,在统一请求网络库处,可以取消请求,从而达到防重复请求。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容