Как создать паузу в коде javascript / jquery после вызова асинхронной функции - PullRequest
2 голосов
/ 18 мая 2011

Как я могу вызвать асинхронную функцию, а затем создать паузу в коде, который следует за вызовом функции, чтобы я мог (почти) быть уверен, что функция асинхронности завершена?
Я не хочупоместите код, который следует за вызовом, в функцию, а затем задержите ее для достижения этого, просто сделайте паузу в коде на несколько секунд.

Вот что я имею в виду:

<script>
   asynchronousFunction(); // start running immediatly

   waitFor10Seconds(); // only the following code should wait while the async 
                       // function is running in the background

   rest of the code; // this code will start running after 10 seconds have passed 
                     // since the async function has been called     
</script>

Ответы [ 3 ]

4 голосов
/ 18 мая 2011

Это называется setTimeout

asyncThing();
setTimeout(function() {
    // do stuff
}, 10000);

В идеале асинхронная операция должна позволить вам передать обратный вызов, чтобы вы превратили его в

asyncThing(function() {
    // do stuff
}); 
2 голосов
/ 18 мая 2011

Как уже упоминалось, вы должны действительно использовать обратный вызов.С jQuery это просто:

$.get("page.php", "key1=value1", function(data) {
    // Code in here will be executed when response has been received
});

http://api.jquery.com/jQuery.get/

Конечно, вы можете использовать $ .post (), если предпочитаете POST-данные.

1 голос
/ 18 мая 2011

Альдо обратный вызов - лучшая практика, это то, что вы просили

window.setTimeout(function(){ ... }, 10000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...