You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

queue.js 316B

123456789101112131415161718192021222324
  1. module.exports = function() {
  2. var self = {};
  3. var cbs = [];
  4. var arr = [];
  5. self.push = function(val) {
  6. if (cbs.length > 0) {
  7. cbs.shift()(val);
  8. } else {
  9. arr.push(val);
  10. }
  11. }
  12. self.dequeue = function(cb) {
  13. if (arr.length > 0) {
  14. cb(arr.shift());
  15. } else {
  16. cbs.push(cb);
  17. }
  18. }
  19. return self;
  20. }