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.
		
		
		
		
		
			
		
			
				
					37 lines
				
				950 B
			
		
		
			
		
	
	
					37 lines
				
				950 B
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | var Q = require("../q"); | ||
|  | 
 | ||
|  | suite("Chaining", function () { | ||
|  |     var numberToChain = 1000; | ||
|  | 
 | ||
|  |     bench("Chaining many already-fulfilled promises together", function (done) { | ||
|  |         var currentPromise = Q(); | ||
|  |         for (var i = 0; i < numberToChain; ++i) { | ||
|  |             currentPromise = currentPromise.then(function () { | ||
|  |                 return Q(); | ||
|  |             }); | ||
|  |         } | ||
|  | 
 | ||
|  |         currentPromise.then(done); | ||
|  |     }); | ||
|  | 
 | ||
|  |     bench("Chaining and then fulfilling the end of the chain", function (done) { | ||
|  |         var deferred = Q.defer(); | ||
|  | 
 | ||
|  |         var currentPromise = deferred.promise; | ||
|  |         for (var i = 0; i < numberToChain; ++i) { | ||
|  |             (function () { | ||
|  |                 var promiseToReturn = currentPromise; | ||
|  |                 currentPromise = Q().then(function () { | ||
|  |                     return promiseToReturn; | ||
|  |                 }); | ||
|  |             }()); | ||
|  |         } | ||
|  | 
 | ||
|  |         currentPromise.then(done); | ||
|  | 
 | ||
|  |         deferred.resolve(); | ||
|  |     }); | ||
|  | }); |