PromiseList object used for handling a list of Promises

Example
  1. var myFunc = function(){
  2. var promise = new Promise();
  3. //callback the promise after 10 Secs
  4. setTimeout(hitch(promise, "callback"), 10000);
  5. return promise.promise();
  6. }
  7. var myFunc2 = function(){
  8. var promises =[];
  9. for(var i = 0; i < 10; i++){
  10. promises.push(myFunc);
  11. }
  12. //create a new promise list with all 10 promises
  13. return new PromiseList(promises).promise();
  14. }
  15.  
  16. myFunc.then(function(success){}, function(error){})
  17. //chain promise operations
  18. myFunc.chain(myfunc).then(function(success){}, function(error){})
  19.  
  20. myFunc2.then(function(success){}, function(error){})
  21. //chain promise operations
  22. myFunc2.chain(myfunc).then(function(success){}, function(error){})
Extends

Constructor

Defined promise.js Source
  1. function (defs,normalizeResults){
  2. this.__errors = [];
  3. this.__results = [];
  4. this.normalizeResults = base.isBoolean(normalizeResults) ? normalizeResults : false;
  5. this._super(arguments);
  6. if (defs && defs.length) {
  7. this.__defLength = defs.length;
  8. forEach(defs, this.__addPromise, this);
  9. } else {
  10. this.__resolve();
  11. }
  12. }

__addPromise Function Private


Defined promise.js

Add a promise to our chain

Arguments Source
  1. function (promise,i){
  2. var self = this;
  3. promise.then(
  4. function () {
  5. var args = argsToArray(arguments);
  6. args.unshift(i);
  7. spreadArgs(self.callback, args, self);
  8. promise = i = self = null;
  9. },
  10. function () {
  11. var args = argsToArray(arguments);
  12. args.unshift(i);
  13. spreadArgs(self.errback, args, self);
  14. promise = i = self = null;
  15. });
  16. }

__resolve Function Private


Defined promise.js

Resolves the promise

Source
  1. function (){
  2. if (!this.__fired) {
  3. this.__fired = true;
  4. var self = this;
  5. nextTick(function () {
  6. var cbs = self.__errors.length ? self.__errorCbs : self.__cbs,
  7. len = cbs.length, i,
  8. results = self.__errors.length ? self.__errors : self.__results;
  9. for (i = 0; i &lt; len; i++) {
  10. spreadArgs(cbs[i], [results]);
  11. }
  12. });
  13. }
  14. }

License

MIT https://github.com/C2FO/comb/raw/master/LICENSE

Meta