Вызов функций внутри элемента Polymer

Я изо всех сил пытаюсь вызвать функции внутри моего полимерного элемента. Я знаю, что вам нужно использовать this.functionName();и это работает.

но когда я был в setTimeout, вот так: runSoon = setTimeout(this.runNow(), 12000); это работает без ожидания. Если я напишу это так: runSoon = setTimeout(function(){this.runNow()}, 12000); это дает мне сообщение об ошибке: Uncaught TypeError: this.runNow is not a function,

Кроме того, когда я использую this.functionName в Firebase, он работает, но в "forEach", как в этом примере, он выдает эту ошибку Uncaught TypeError: this.myFunction is not a function:

ref.once('value', function(snapshot) {
  snapshot.forEach(function(child) {
    this.myFunction();
  });
});

Спасибо

1 ответ

Решение

Должно быть без ()

runSoon = setTimeout(this.runNow, 12000);

таким образом, вы передаете ссылку на функцию this.runNow

runSoon = setTimeout(this.runNow(), 12000);

передает результат this.runNow() в setTimeout(...)

Другие вопросы по тегам