@@ -6,25 +6,6 @@ const cacheManager = require('cache-manager');
6
6
const redisStoreFactory = require ( './redis-store-factory' ) ;
7
7
const calculateSlot = require ( 'cluster-key-slot' ) ;
8
8
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
-
28
9
class AdapterCacheRedis extends BaseCacheAdapter {
29
10
/**
30
11
*
@@ -214,21 +195,13 @@ class AdapterCacheRedis extends BaseCacheAdapter {
214
195
async get ( key , fetchData ) {
215
196
const internalKey = this . _buildKey ( key ) ;
216
197
if ( this . currentlyExecutingReads . has ( internalKey ) ) {
217
- return this . currentlyExecutingReads . get ( internalKey ) . promise ;
198
+ return this . currentlyExecutingReads . get ( internalKey ) ;
218
199
}
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 ;
232
205
}
233
206
234
207
async #get( key , fetchData ) {
0 commit comments