43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
|
dojo.provide("dojox.timing.doLater");
|
||
|
dojo.experimental("dojox.timing.doLater");
|
||
|
|
||
|
dojox.timing.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 = dojox.timing.doLater.caller,
|
||
|
args = dojox.timing.doLater.caller.arguments;
|
||
|
interval = interval || 100;
|
||
|
context = context || dojo.global;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
callback.apply(context, args);
|
||
|
},interval);
|
||
|
return true; // Boolean
|
||
|
}
|