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