Функция setTimeout в javascript вызывается, но не устанавливает время ожидания - PullRequest
0 голосов
/ 24 февраля 2020
var r = 0;
var g = 0;
var b = 225;

function gradient() {
    b = b - 10;
}

while (b> 6){
    setTimeout(gradient(),1000);
}


ctx.beginPath();
ctx.fillStyle= 'rgb('+r+', '+g+', '+b+')'
ctx.rect(0,0,1200,590,2*Math.PI)
ctx.stroke()
ctx.fill();
ctx.closePath();

Я знаю, что while l oop и функция работают, потому что переменная b уменьшается, а цвет изображения холста изменяется. Но задержки нет, и это происходит мгновенно. Я также пробовал использовать функцию setInterval, но не могу заставить ее работать.

1 Ответ

0 голосов
/ 24 февраля 2020

Попробуйте:

 var r = 0;
 var g = 0;
 var b = 225;

 function gradient() {

   if(b > 6){
      console.log(b);
      b = b - 10;
      setTimeout(gradient,1000);
   }

 }

 gradient();

 ctx.beginPath();
 ctx.fillStyle= 'rgb('+r+', '+g+', '+b+')'
 ctx.rect(0,0,1200,590,2*Math.PI)
 ctx.stroke()
 ctx.fill();
 ctx.closePath();
...