Когда вы возвращаете что-то результат в then
, этот результат входит в следующую then
функцию. Таким образом, вы можете управлять тем, что вы будете делать в следующем then
, основываясь на входном параметре inCache
. Таким образом, вы можете сделать что-то вроде:
export const getData = (url: string) => {
return new Promise((resolve, reject) => {
findInCache(url)
.then((cached: string | null) => {
if (cached) {
resolve(cached);
return true;
}
return false;
})
.then((inCache) => {
if (!inCache) {
axios
.get(url)
.then(({data}) => {
setCache(url, data, TTL);
resolve(data);
})
.catch(e => reject(e));
}
});
});
};