const promiseRecord = {}; // 用于缓存请求状态
/**
-
通过路径和参数生成唯一字符
-
@param {*} apiUrl
*/
const createKey = (apiUrl) => {
return apiUrl;
};
// 普通的 get 请求
const get = (apiUrl) => request.get(apiUrl)
/**
-
用来发起需要缓存的请求
-
@param {String} apiUrl
-
@param {Boolean} refresh 可能在某些情况下不能使用缓存必须到后台获取
*/
const getCache = (apiUrl, refresh = false) => {
// 用请求路径和参数生成标识,完全相同的请求的标识一样,作为储存的键
let keyName = createKey(apiUrl);
return new Promise((resolve, reject) => {
let data = sessionStorage.getItem(keyName);
let request = () => {
get(apiUrl)
.then((value) => {
sessionStorage.setItem(keyName, JSON.stringify(value));
resolve(value);
})
.catch