From d88d43d295a4484705963f28d39211242e2a68f0 Mon Sep 17 00:00:00 2001 From: rebareba Date: Fri, 2 Feb 2018 10:58:17 +0800 Subject: [PATCH] handle factoryCreate fail if don't do this ,it would call factory.create() again and again . or I can do like this outside. const pool = genericPool.createPool(factory, options); pool.on('factoryCreateError', function (err) { const clientResourceRequest = pool._waitingClientsQueue.dequeue(); if (clientResourceRequest) { clientResourceRequest.reject(err); } }) Need change _waitingClientsQueue -> waitingClientsQueue and defined Pool.FACTORY_CREATE_ERROR = FACTORY_CREATE_ERROR; --- lib/Pool.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/Pool.js b/lib/Pool.js index 70bfd5a3..31badd90 100644 --- a/lib/Pool.js +++ b/lib/Pool.js @@ -314,6 +314,10 @@ class Pool extends EventEmitter { return null; }) .catch(reason => { + const clientResourceRequest = this._waitingClientsQueue.dequeue(); + if (clientResourceRequest) { + clientResourceRequest.reject(reason); + } this.emit(FACTORY_CREATE_ERROR, reason); this._dispense(); });