Sorry about the title but could not come up with anything really informative and concise.
My situation is that I am launching a setTimeout and I want it to be able to run in the middle of a JS function (it is used to get around the issue with injecting GM functions into the web page).
unsafeWindow.testG = function(key, dValue){
var rValue;
setTimeout(function(){rValue = GM_getValue(key, dValue);}, 0);
alert(rValue);
alert(rValue);
return(rValue);
}
In the three tests rValue is still undefined (which makes sense because JS is single threaded for the most part).
So I have 2 solutions I have thought of.
Favourite: Is there anyway to tell JS to sleep in the middle of a function and work on background stuff (like Timeouts)?
Other: Does anyone know when this timeout will be called? Maybe after this function execution but before whatever called it starts up again? In that case making rValue global would solve the issue (but make slightly messier coding).
Or will it wait until all JS is done executing? In that case I would possibly need another setTimeout to process the result.