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