Explorar o código

emit 'close' signal when no more input data will be consumed

this allows client to know when the network data is completely transferred, before consuming it
Gil Pedersen %!s(int64=12) %!d(string=hai) anos
pai
achega
c35c837ec4
Modificáronse 1 ficheiros con 8 adicións e 3 borrados
  1. 8 3
      lib/uristream.js

+ 8 - 3
lib/uristream.js

@@ -134,12 +134,17 @@ function setupHttp(uri, options, dst) {
         if (err || failed) return failOrRetry(err);
         debug('done fetching uri', uri);
         dst.push(null);
+
+        dst.closed = true;
+        dst.emit('close');
       });
 
       // allow aborting the request
-      dst.abort = function() {
-        tries = 0;
-        req.abort();
+      dst.abort = function(reason) {
+        if (!dst.closed) {
+          tries = 0;
+          req.abort();
+        }
       }
 
       // forward all future errors to response stream