Skip to content

Commit d6d5838

Browse files
committed
Removed usage of deferred
1 parent 670440c commit d6d5838

File tree

1 file changed

+6
-33
lines changed

1 file changed

+6
-33
lines changed

Diff for: ghost/adapter-cache-redis/lib/AdapterCacheRedis.js

+6-33
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,6 @@ const cacheManager = require('cache-manager');
66
const redisStoreFactory = require('./redis-store-factory');
77
const calculateSlot = require('cluster-key-slot');
88

9-
function deferred() {
10-
let value;
11-
let err;
12-
let resolve = _value => value = _value;
13-
let reject = _err => err = _err;
14-
const promise = new Promise((_resolve, _reject) => {
15-
if (value) {
16-
_resolve(value);
17-
}
18-
if (err) {
19-
_reject(err);
20-
}
21-
resolve = _value => _resolve(_value);
22-
reject = _err => _reject(_err);
23-
});
24-
25-
return {resolve, reject, promise};
26-
}
27-
289
class AdapterCacheRedis extends BaseCacheAdapter {
2910
/**
3011
*
@@ -214,21 +195,13 @@ class AdapterCacheRedis extends BaseCacheAdapter {
214195
async get(key, fetchData) {
215196
const internalKey = this._buildKey(key);
216197
if (this.currentlyExecutingReads.has(internalKey)) {
217-
return this.currentlyExecutingReads.get(internalKey).promise;
198+
return this.currentlyExecutingReads.get(internalKey);
218199
}
219-
const deferredResult = deferred();
220-
this.currentlyExecutingReads.set(internalKey, deferredResult);
221-
this.#get(key, fetchData)
222-
.then((result) => {
223-
deferredResult.resolve(result);
224-
this.currentlyExecutingReads.delete(key);
225-
})
226-
.catch((err) => {
227-
deferredResult.reject(err);
228-
this.currentlyExecutingReads.delete(key);
229-
});
230-
231-
return deferredResult.promise;
200+
const resultPromise = this.#get(key, fetchData).finally(() => {
201+
this.currentlyExecutingReads.delete(internalKey);
202+
});
203+
this.currentlyExecutingReads.set(internalKey, resultPromise);
204+
return resultPromise;
232205
}
233206

234207
async #get(key, fetchData) {

0 commit comments

Comments
 (0)