Есть ли более простой способ сделать setTimeout ....? - PullRequest
0 голосов
/ 07 декабря 2011

Я использую следующий код для ожидания выполнения java-скрипта в течение 3 секунд.

var test = setTimeout(function(){
   alert("Test");
},3000);

У меня вопрос: есть ли более простой способ сделать то же самое, например: Я наткнулся на какой-то блог, в котором используется $ .idle

$.idle(3000);
alert("Test");

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 07 декабря 2011

Вы после задержки?

http://api.jquery.com/delay/

1 голос
/ 07 декабря 2011

Хотелось бы, чтобы я мог вспомнить сайт, на котором я его вытащил, чтобы я мог полностью отдать должное автору, но то, что вы можете искать, это хорошее использование Deferreds в jQuery.

Вот функция, которая использует Deferreds, чтобы у вас был чистый, функциональный, вызывающий механизм, очень похожий на тот, который вы показали (за исключением того, что он не блокирует, как упоминал Энди Е.)

$.wait = function(time) {
    return $.Deferred(function( dfd ) {
        // resolve() calls all of the registered
        // 'done' callbacks (registered using then())
        setTimeout(dfd.resolve, time);
    }).promise();
};

Теперь, благодаря Deferreds, вы можете записать тайм-ауты в своем приложении следующим образом:

$.wait(5000).then(function() {
  alert("Hello from the future!");
});
1 голос
/ 07 декабря 2011

Вызов setTimeout () выполняется так быстро, как вы можете, поскольку это нативный JS.

...