axiosCache.js 751 B

123456789101112131415161718192021222324252627282930
  1. export default function(get, regexes) {
  2. // cachingGet
  3. const cache = new Map();
  4. return function cachedGet(url) {
  5. const key = url;
  6. if (regexes.some(regex => url.match(regex))) {
  7. if (cache.has(key)) {
  8. const request = cache.get(key);
  9. // console.log("cache.get(key):" + request.then(v => console.log(v)));
  10. return request;
  11. } else {
  12. const request = get(...arguments);
  13. return request.then(v => {
  14. if (v.status === 200) {
  15. // 如果能取到数据,才缓存
  16. cache.set(key, request);
  17. }
  18. return request;
  19. });
  20. // return request;
  21. }
  22. } else {
  23. const request = get(...arguments);
  24. return request;
  25. }
  26. };
  27. }