2 var Q = require("./q");
4 module.exports = Queue;
7 var closed = Q.defer();
9 put: function (value) {
15 ends.resolve = next.resolve;
18 var result = ends.promise.get("head");
19 ends.promise = ends.promise.get("tail");
20 return result.fail(function (error) {
21 closed.resolve(error);
25 closed: closed.promise,
26 close: function (error) {
27 error = error || new Error("Can't get value from closed queue");
28 var end = {head: Q.reject(error)};
31 return closed.promise;