mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
Removed usage of deferred
This commit is contained in:
parent
3693ee70a2
commit
80c4e91669
1 changed files with 6 additions and 33 deletions
|
@ -6,25 +6,6 @@ const cacheManager = require('cache-manager');
|
||||||
const redisStoreFactory = require('./redis-store-factory');
|
const redisStoreFactory = require('./redis-store-factory');
|
||||||
const calculateSlot = require('cluster-key-slot');
|
const calculateSlot = require('cluster-key-slot');
|
||||||
|
|
||||||
function deferred() {
|
|
||||||
let value;
|
|
||||||
let err;
|
|
||||||
let resolve = _value => value = _value;
|
|
||||||
let reject = _err => err = _err;
|
|
||||||
const promise = new Promise((_resolve, _reject) => {
|
|
||||||
if (value) {
|
|
||||||
_resolve(value);
|
|
||||||
}
|
|
||||||
if (err) {
|
|
||||||
_reject(err);
|
|
||||||
}
|
|
||||||
resolve = _value => _resolve(_value);
|
|
||||||
reject = _err => _reject(_err);
|
|
||||||
});
|
|
||||||
|
|
||||||
return {resolve, reject, promise};
|
|
||||||
}
|
|
||||||
|
|
||||||
class AdapterCacheRedis extends BaseCacheAdapter {
|
class AdapterCacheRedis extends BaseCacheAdapter {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -188,21 +169,13 @@ class AdapterCacheRedis extends BaseCacheAdapter {
|
||||||
async get(key, fetchData) {
|
async get(key, fetchData) {
|
||||||
const internalKey = this._buildKey(key);
|
const internalKey = this._buildKey(key);
|
||||||
if (this.currentlyExecutingReads.has(internalKey)) {
|
if (this.currentlyExecutingReads.has(internalKey)) {
|
||||||
return this.currentlyExecutingReads.get(internalKey).promise;
|
return this.currentlyExecutingReads.get(internalKey);
|
||||||
}
|
}
|
||||||
const deferredResult = deferred();
|
const resultPromise = this.#get(key, fetchData).finally(() => {
|
||||||
this.currentlyExecutingReads.set(internalKey, deferredResult);
|
this.currentlyExecutingReads.delete(internalKey);
|
||||||
this.#get(key, fetchData)
|
|
||||||
.then((result) => {
|
|
||||||
deferredResult.resolve(result);
|
|
||||||
this.currentlyExecutingReads.delete(key);
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
deferredResult.reject(err);
|
|
||||||
this.currentlyExecutingReads.delete(key);
|
|
||||||
});
|
});
|
||||||
|
this.currentlyExecutingReads.set(internalKey, resultPromise);
|
||||||
return deferredResult.promise;
|
return resultPromise;
|
||||||
}
|
}
|
||||||
|
|
||||||
async #get(key, fetchData) {
|
async #get(key, fetchData) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue