Отсрочить функцию
Здравствуйте.
Есть продолжительная функция 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, время: 14:59. |