Прямо сейчас я использую 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) {}
})();