Проблемы с функцией setInterval JavaScript - PullRequest
0 голосов
/ 27 июня 2018

Я использую функцию setInterval в JavaScript, но я получаю около ста повторений в секунду из console.log ('NOW'). setTimeout также имеет тот же эффект.

Где моя ошибка? Я хочу вызывать функцию "function1" каждые 15 минут.

Код JavaScript:

   function1() {
      console.log('NOW');
      .
      .
      .
      });
    },
    refreshData() {
      this.function1();
      setInterval(this.refreshData(), 900000);
    },

Спасибо заранее!

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

Оберните ваш вызов функции так:

    var self = this;
    refreshData() {
      this.function1();
      setInterval(function(){  self.refreshData() }, 900000);
    }
0 голосов
/ 27 июня 2018

Есть два возможных пути:

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

function function1() {
  console.log('NOW');
}

function refreshData() {
  this.function1();
  setTimeout(this.refreshData, 3000);
}

refreshData();

Или просто замените существующую логику на setInterval, она должна выполнить всю работу, которую вы реализовали вручную:

function function1() {
  console.log('NOW');
}

this.function1();
setInterval(this.function1, 3000);
0 голосов
/ 27 июня 2018

вы вызываете функцию

setInterval(this.refreshData(), 900000);

вместо передачи ссылки на функцию

setInterval(this.refreshData, 900000);
...