@@ -58,9 +58,6 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
58
58
/** Is the client still processing a call? */
59
59
protected _processing : boolean = false ;
60
60
61
- /** Processing interval */
62
- protected _processingInterval ?: number ;
63
-
64
61
/**
65
62
* Initializes this client instance.
66
63
*
@@ -166,14 +163,14 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
166
163
* @inheritDoc
167
164
*/
168
165
public flush ( timeout ?: number ) : Promise < boolean > {
169
- return this . _isClientProcessing ( timeout ) . then ( clientReady => {
170
- if ( this . _processingInterval ) {
171
- clearInterval ( this . _processingInterval ) ;
166
+ return this . _isClientProcessing ( timeout ) . then ( status => {
167
+ if ( status . interval ) {
168
+ clearInterval ( status . interval ) ;
172
169
}
173
170
return this . _getBackend ( )
174
171
. getTransport ( )
175
172
. close ( timeout )
176
- . then ( transportFlushed => clientReady && transportFlushed ) ;
173
+ . then ( transportFlushed => status . ready && transportFlushed ) ;
177
174
} ) ;
178
175
}
179
176
@@ -207,20 +204,27 @@ export abstract class BaseClient<B extends Backend, O extends Options> implement
207
204
}
208
205
209
206
/** Waits for the client to be done with processing. */
210
- protected _isClientProcessing ( timeout ?: number ) : Promise < boolean > {
211
- return new Promise < boolean > ( resolve => {
207
+ protected _isClientProcessing ( timeout ?: number ) : Promise < { ready : boolean ; interval : number } > {
208
+ return new Promise < { ready : boolean ; interval : number } > ( resolve => {
212
209
let ticked : number = 0 ;
213
210
const tick : number = 1 ;
214
- if ( this . _processingInterval ) {
215
- clearInterval ( this . _processingInterval ) ;
216
- }
217
- this . _processingInterval = ( setInterval ( ( ) => {
211
+
212
+ let interval = 0 ;
213
+ clearInterval ( interval ) ;
214
+
215
+ interval = ( setInterval ( ( ) => {
218
216
if ( ! this . _processing ) {
219
- resolve ( true ) ;
217
+ resolve ( {
218
+ interval,
219
+ ready : true ,
220
+ } ) ;
220
221
} else {
221
222
ticked += tick ;
222
223
if ( timeout && ticked >= timeout ) {
223
- resolve ( false ) ;
224
+ resolve ( {
225
+ interval,
226
+ ready : false ,
227
+ } ) ;
224
228
}
225
229
}
226
230
} , tick ) as unknown ) as number ;
0 commit comments