http: remove redundant code in _deferToConnect
authorMalcolm Ahoy <malcolmahoy@gmail.com>
Wed, 9 Sep 2015 13:11:19 +0000 (06:11 -0700)
committerRod Vagg <rod@vagg.org>
Tue, 22 Sep 2015 22:39:33 +0000 (08:39 +1000)
Logic for calling the passed in socket method and/or callback
was duplicated. This commit refactors the relevant code to
remove the redundancy.

PR-URL: https://github.com/nodejs/node/pull/2769
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
lib/_http_client.js

index e490dce..8ddf334 100644 (file)
@@ -504,21 +504,23 @@ ClientRequest.prototype._deferToConnect = function(method, arguments_, cb) {
   // in the future (when a socket gets assigned out of the pool and is
   // eventually writable).
   var self = this;
+
+  function callSocketMethod() {
+    if (method)
+      self.socket[method].apply(self.socket, arguments_);
+
+    if (typeof cb === 'function')
+      cb();
+  }
+
   var onSocket = function() {
     if (self.socket.writable) {
-      if (method) {
-        self.socket[method].apply(self.socket, arguments_);
-      }
-      if (cb) { cb(); }
+      callSocketMethod();
     } else {
-      self.socket.once('connect', function() {
-        if (method) {
-          self.socket[method].apply(self.socket, arguments_);
-        }
-        if (cb) { cb(); }
-      });
+      self.socket.once('connect', callSocketMethod);
     }
   };
+
   if (!self.socket) {
     self.once('socket', onSocket);
   } else {