| "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(); |
| }); |
| }); |