source: Dev/trunk/src/client/dojox/timing/doLater.js @ 529

Last change on this file since 529 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 1.4 KB
Line 
1define(["./_base"], function(dxt){
2        dojo.experimental("dojox.timing.doLater");
3
4        dxt.doLater = function(/*anything*/conditional,/*Object ?*/context, /* Number ? */interval){
5                // summary:
6                //              Check if a parameter is ready, and if not,
7                //              "do later". doLater will ping the parameter
8                //              until it evaluates to something (truthy).
9                //              It thens calls the caller with original
10                //              arguments, using the supplied context or
11                //              window.
12                // description:
13                //              dojox.timing.doLater(conditional) is testing if the call
14                //              should be done later. So it returns
15                //              true if the param is false.
16                // conditional: anything
17                //              Can be a property that eventually gets set, or
18                //              an expression, method... anything that can be
19                //              evaluated.
20                // context:     Object
21                //              The namespace where the call originated.
22                //              Defaults to global and anonymous functions
23                // interval:    Number
24                //              Poll time to check conditional in Milliseconds
25                // example:
26                //      | setTimeout(function(){
27                //      |               if(dojox.timing.doLater(app.ready)){return;}
28                //      |               console.log("Code is ready! anonymous.function SUCCESS")
29                //      |       },700);
30
31                if(conditional){ return false; }  // Boolean
32                var callback = dxt.doLater.caller,
33                        args = dxt.doLater.caller.arguments;
34                interval = interval || 100;
35                context = context || dojo.global;
36               
37                setTimeout(function(){
38                        callback.apply(context, args);
39                },interval);
40                return true; // Boolean
41        };
42        return dxt.doLater;
43});
Note: See TracBrowser for help on using the repository browser.