setTimeout () не выполняет желаемую функцию? - PullRequest
0 голосов
/ 10 января 2019

Я работаю над проектом для школы, и я использовал функцию setTimeout () для выполнения моей функции flawlessWin, но она не выполняется. Я думаю, что раньше использовал правильный синтаксис, но я новичок в Javascript, поэтому я могу просто не увидеть что-то очевидное. Любая помощь или предложения приветствуются!

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

Ссылка на код - https://codepen.io/Jacob-Bruce/pen/mQgbXa

    function executeTimeout() {
  setTimeout(flawlessWin, 100);
};  
function flawlessWin() {
   ctx.font = "30px Arial";
   ctx.fillText("Flawless Victory!", canvas.width/3, canvas.height/3)
};
// collision
function collisionDetection() {
  for(var c=0; c<brickColumnCount; c++) {
    for(var r=0; r<brickRowCount; r++) {
      var b = bricks[c][r];
      if(b.status == 1) {
        if(x > b.x && x < b.x+brickWidth && y > b.y && y < 
           b.y+brickHeight) {
          dy = -dy;
          b.status = 0;
          score++;
          // win condition - find out why the AND log. operator isn't 
              working

          if(score == brickRowCount*brickColumnCount) {
              executetimeout();

          }
        }
      }
    }
  }
}

Я ожидаю, что функция flawlessWin будет выполнена после истечения времени ожидания.

Ответы [ 3 ]

0 голосов
/ 10 января 2019
function executeTimeout() {
  //setTimeout(flawlessWin, 100);
    setTimeout(function () {
         flawlessWin();  
         }, 100);
};

Я думаю, вам нужно использовать этот синтаксис, чтобы использовать функцию set timeout, надеюсь, она будет работать.

0 голосов
/ 10 января 2019

Javascript чрезвычайно чувствителен к регистру, поэтому, когда вы говорите

executetimeout();

должно быть

executeTimeout();
0 голосов
/ 10 января 2019

У вас есть опечатка. Ваша функция executeTimeout(), но когда вы вызываете ее внутри

if (score == brickRowCount*brickColumnCount) {
  executetimeout();
}

первая буква "t" в тайм-ауте не прописная. JavaScript чувствителен к регистру.

...