Отсрочить функцию
Здравствуйте.
Есть продолжительная функция function ExpandTree(treex) { .... } Хочу обернуть ее в параметр другой функции, чтобы она выполнилась с отсрочкой, а не выполнялась сразу в параметре. WorkFunc( ExpandTree(treex),"Идет выполнение операции ...");
function WorkFunc(func,text)
{
VisibleMessageDialog(text);
var ktimeout = setTimeout(function Work()
{
func;
HideMessageDialog();
clearTimeout(ktimeout);
}, 500);
}
Но ExpandTree(treex) начинает выполнять сразу и окошка отображения не видно, а хочется чтобы выполнялась внутри подфункции Work, а не раньше. Спасибо. |
<script>
function WorkFunc(func)
{
//VisibleMessageDialog(text);
setTimeout(function ()
{
func();
//HideMessageDialog();
}, 2000);
}
function ExpandTree(treex)
{
alert(0)
}
WorkFunc(ExpandTree)
</script>
|
Типа этого не пойдет?
p=document.createElement("p")
p.style.display="none"
document.body.appendChild(p)
showMsg=function(text){
p.innerHTML=text;
p.style.display="block";
};
hideMsg=function(){p.style.display="none"}
long=function(text){
var i=100000000
while(i){
i--
}
document.body.appendChild(document.createTextNode(text))
}
wrapper=function(fu, arg, text){
showMsg(text)
setTimeout(function(){
fu(arg)
hideMsg()
}, 1000)
}
wrapper(long, "bla-bla-bla", "I'm first!")
|
foo,
Пойдёт :) p.s
wrapper=function(fu, arg, text){
showMsg(text)
var id=setTimeout(function(){
fu(arg)
hideMsg()
clearTimeout(id)//БЕСПОЛЕЗНАЯ СТРОЧКА!!! Имеет смысл вне конструкции
}, 1000)
}
===
wrapper=function(fu, arg, text){
showMsg(text)
setTimeout(function(){
fu(arg)
hideMsg()
}, 1000)
}
|
Цитата:
|
Спасибо, то что надо.
|
| Часовой пояс GMT +3, время: 05:54. |