"use strict"; var Q = require("./q"); module.exports = Queue; function Queue() { if (!(this instanceof Queue)) { return new Queue(); } var ends = Q.defer(); this.put = function (value) { var next = Q.defer(); ends.resolve({ head: value, tail: next.promise }); ends.resolve = next.resolve; }; this.get = function () { var result = ends.promise.get("head"); ends.promise = ends.promise.get("tail"); return result; }; }