all files / lib/mapreduce/ taskqueue.js

100% Statements 16/16
75% Branches 3/4
100% Functions 7/7
100% Lines 15/15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35                592× 592×             1890×     1890×   1890×   738×    
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _promise = require('../deps/promise');
 
var _promise2 = _interopRequireDefault(_promise);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
function TaskQueue() {
  this.promise = new _promise2.default(function (fulfill) {
    fulfill();
  });
} /*
   * Simple task queue to sequentialize actions. Assumes
   * callbacks will eventually fire (once).
   */
 
TaskQueue.prototype.add = function (promiseFactory) {
  this.promise = this.promise.catch(function () {
    // just recover
  }).then(function () {
    return promiseFactory();
  });
  return this.promise;
};
TaskQueue.prototype.finish = function () {
  return this.promise;
};
 
exports.default = TaskQueue;
module.exports = exports['default'];