48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
//>>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;
|
|
});
|