]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/DeferredList.js.uncompressed.js
1 define("dojo/DeferredList", ["./_base/kernel", "./_base/Deferred", "./_base/array"], function(dojo
, Deferred
, darray
){
6 dojo
.DeferredList = function(/*Array*/ list
, /*Boolean?*/ fireOnOneCallback
, /*Boolean?*/ fireOnOneErrback
, /*Boolean?*/ consumeErrors
, /*Function?*/ canceller
){
8 // Deprecated, use dojo/promise/all instead.
9 // Provides event handling for a group of Deferred objects.
11 // DeferredList takes an array of existing deferreds and returns a new deferred of its own
12 // this new deferred will typically have its callback fired when all of the deferreds in
13 // the given list have fired their own deferreds. The parameters `fireOnOneCallback` and
14 // fireOnOneErrback, will fire before all the deferreds as appropriate
16 // The list of deferreds to be synchronizied with this DeferredList
18 // Will cause the DeferredLists callback to be fired as soon as any
19 // of the deferreds in its list have been fired instead of waiting until
20 // the entire list has finished
22 // Will cause the errback to fire upon any of the deferreds errback
24 // A deferred canceller function, see dojo.Deferred
28 if(list
.length
=== 0 && !fireOnOneCallback
){
29 this.resolve([0, []]);
32 darray
.forEach(list
, function(item
, i
){
33 item
.then(function(result
){
34 if(fireOnOneCallback
){
35 self
.resolve([i
, result
]);
37 addResult(true, result
);
43 addResult(false, error
);
50 function addResult(succeeded
, result
){
51 resultList
[i
] = [succeeded
, result
];
53 if(finished
=== list
.length
){
54 self
.resolve(resultList
);
60 dojo
.DeferredList
.prototype = new Deferred();
62 dojo
.DeferredList
.prototype.gatherResults = function(deferredList
){
64 // Gathers the results of the deferreds for packaging
65 // as the parameters to the Deferred Lists' callback
66 // deferredList: dojo/DeferredList
67 // The deferred list from which this function gathers results.
68 // returns: dojo/DeferredList
69 // The newly created deferred list which packs results as
70 // parameters to its callback.
72 var d
= new dojo
.DeferredList(deferredList
, false, true, false);
73 d
.addCallback(function(results
){
75 darray
.forEach(results
, function(result
){
83 return dojo
.DeferredList
;