2016-08-14 3 views
2

Возможно ли задержать переменную value внутри window.setTimeout и значение миллисекунды тайм-аута будет моим time переменной ниже?Можно ли задержать переменную в цикле с заданным таймаутом?

var value = null; 
var time = 5000; 

for(var i = 0; i < 30; i++){ 


    if(value === "a"){ 
    console.log("You made it!"); 
    } else { 
     console.log("You didn't make it!"); 
    } 

time = time - 100; 

} 
+0

Что вы имеете в виду под «_delay_ переменную»? – vlaz

+0

Например, если вы хотите, чтобы переменная продолжалась 5 секунд без каких-либо действий, а затем она станет тем, что ее значение, и вызывает оператор if или что-то в этом роде. – Bubblegumz

+0

Итак, вы хотите, чтобы ур-программа спала в течение определенного времени, а затем снова работала? –

ответ

1

Вы также можете использовать

for(i=0;i<30;i++) 
    setTimeout(function(){ 

    alert('hello'); 
    }, 5000); 

alert('hey'); 
} 

Но она будет работать по-другому. Он даст «привет» сразу, и через 5 секунд он покажет «эй».

Вы можете использовать метод clearTimeout() для очистки тайм-аута.

+0

Спасибо. Это то, что мне нужно. – Bubblegumz

+0

Добро пожаловать. Всегда рад помочь. –

1

Да, вы можете сделать это с помощью метода setInterval():

var myVar=setInterval(function() { 
    //codehere 
     }, 100); 

Здесь 100 миллисекунд интервал

Используйте clearInterval() остановить время:

clearInterval(myVar); 

Здесь myVar это имя переменной функции setInterval.

+0

Могу ли я сделать значение 100 миллисекундов моей переменной времени? – Bubblegumz

+0

Да Вы можете сделать это, использовать его в своем коде. ссылка ссылки: http://www.w3schools.com/jsref/met_win_setinterval.asp –

+0

Кроме того, есть ли способ остановить ее, или это больше похоже на бесконечный цикл. – Bubblegumz

1

Вы можете создать функцию обратного вызова, чтобы сделать это

var value = null; 
var time = 5000; 
var limit=30; 
var i = 0; 
function delay(limit, time, callback) {    
     loop(); 
     function loop(){ 
      if(value = "a")// it may be a comparison (you are assigning value). 
      { 
       setTimeout(function(){ 
        i++; 
        if (i<=limit && time >= 0){ 
         callback("callback after"+time); 
         callback("You made it!"); 
         loop(); 
        } 
       }, time) 
      } 

      else 
      { 
        callback("You didn't make it!"); 
      } 

      time=time-100; 
     } 
} 


// Calling a callback function 
delay(limit,time, function(callback){ 
console.log(callback); 
Смежные вопросы