Skip to content

Instantly share code, notes, and snippets.

@domenic
Created September 3, 2013 04:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save domenic/6419679 to your computer and use it in GitHub Desktop.
Save domenic/6419679 to your computer and use it in GitHub Desktop.
pipe with promises
exports.pipe = function (source, sink) {
var deferred = Q.defer();
source
.on("end", deferred.resolve)
.on("error", deferred.reject)
.pipe(sink)
.on("error", deferred.reject);
deferred.promise.finally(function () {
source.removeListener("end", deferred.resolve);
source.removeListener("error", deferred.reject);
sink.removeListener("error", deferred.reject);
});
return deferred.promise;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment