code: function executePromiseGetters(getters) {
    var concurrent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
    var stopped;
    var promise = new Promise(function (resolve, reject) {
      var r = [];
      var chunks = splitArray(getters, concurrent);
      var promise = Promise.resolve();
      chunks.forEach(function (chunk) {
        promise = promise.then(function (result) {
          if (result) {
            r.push.apply(r, _toConsumableArray(result));
          }
  
          if (stopped) {
            reject('stopped');
          } else {
            return Promise.all(chunk.map(function (v) {
              return v();
            }));
          }
        });
      });
      promise.then(function (result) {
        r.push.apply(r, _toConsumableArray(result));
        resolve(r);
      });
    });
    return {
      promise: promise,
      destroy: function destroy() {
        stopped = true;
      }
    };
  }
docs: promise execute promise in sequence