Javascript проблема синхронизации - PullRequest
1 голос
/ 13 июня 2009

Я хочу запустить блок кода через определенное время, а затем, когда закончите, продолжить работу с другим блоком кода.

Ответы [ 6 ]

2 голосов
/ 14 июня 2009

Это то, как вы это сделаете, используя функцию setTimeout, которая принимает код для вызова в качестве первого аргумента и сколько времени ему нужно ждать перед вызовом (в миллисекундах) в качестве второго аргумент:

function callWhenDone() {
    // code to call when timeout finishes
}

setTimeout(function() {
    // initial code to run
    callWhenDone();
}, 5000); // 5000 = run in 5 seconds

Из-за природы Javascript вы должны инкапсулировать код, который вы хотите запустить после истечения времени ожидания, в свою собственную функцию, в противном случае он будет выполнен до того, как истечет время ожидания. По сути, это обратный вызов , и это большая часть основанного на событиях характера Javascript.

2 голосов
/ 14 июня 2009

Использование setTimeout (), вероятно, то, что вы хотите. Например ...

<script type="text/javascript">
    function YourFunction()
    {
        alert('Hello Stackoverflow');
    }

    window.setTimeout(YourFunction, 1000);
</script>

Надеюсь, это поможет

0 голосов
/ 03 апреля 2010
<script type="text/javascript">

var timer = setInterval("firstFunction()","1000"); //every second call firstFunction()
var i = 0;

function firstFunction()
{

    //first code

    i++;
    if(i == 3)
    {
        clearInterval(timer);
        secondFunction();
    }
}

function secondFunction()
{
    //second code
    alert("done!");
}

</script>
0 голосов
/ 03 апреля 2010

Использование setTimeout.

setTimeout(function() {
    // code here
    // you can use it recursively
    //   setTimeout(...);
  },
  1000 // 1000 miliseconds (= 1 second)
);

и setInterval похожи на setTimeout, за исключением того, что они повторяют код повторно.

0 голосов
/ 13 июня 2009

setTimeout - выполняет код через промежуток времени

clearTimeout - отменяет setTimeout ()

Подробнее здесь .

0 голосов
/ 13 июня 2009

Вы хотите использовать функцию setTimeout () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...