Отправить запрос с помощью Ax ios и сохранить данные в кеше - PullRequest
0 голосов
/ 28 февраля 2020

Прямо сейчас я использую Web Cache API cacheStorage.add(request); для отправки запроса и хранения данных в Cache Storage, но я хочу отправить запрос через Ax ios и затем сохранить данные, полученные из API Ответ в кеше.

Код, который я использую:

// Try to get data from the cache, but fall back to fetching it live.
async function getData(src) {
  const cacheVersion = process.env.REACT_APP_CACHE_VERSION || 1;
  const cacheName = `images-${cacheVersion}`;
  let cachedData = await getCachedData(cacheName, src);

  if (cachedData) {
    return cachedData;
  }

  const cacheStorage = await caches.open(cacheName);
  const accessToken = Authorization.getAccessToken();

  var requestOptions = {
    method: 'GET',
    headers: {
      Authorization: accessToken
    },
    mode: 'cors'
  };

  var request = new Request(src, requestOptions);

  await cacheStorage.add(request);
  cachedData = await getCachedData(cacheName, src);

  return cachedData;
}

// Get data from the cache.
async function getCachedData(cacheName, src) {
  const cacheStorage = await caches.open(cacheName);
  const cachedResponse = await cacheStorage.match(src);

  if (!cachedResponse || !cachedResponse.ok) {
    return false;
  }

  return await cachedResponse.blob();
}

(async function() {
  try {
    if (path) {
      const url = CONTENT + path;

      const blob = await getData(url);
      const objectURL = URL.createObjectURL(blob);
      setObjectURL(objectURL);
      setIsFetching(false);
    }
  } catch (error) {}
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...