1

我正在努力调用我的聚合物元素中的函数。我知道您需要使用this.functionName();,并且它有效。

但是当我在这样的 setTimeout 中时:runSoon = setTimeout(this.runNow(), 12000);它无需等待即可运行。如果我这样写:runSoon = setTimeout(function(){this.runNow()}, 12000);它会给我一条错误消息:Uncaught TypeError: this.runNow is not a function

此外,当我在 Firebase 中使用 this.functionName 时,它​​可以工作,但在“forEach”中,就像在这个例子中一样,它给了我那个错误Uncaught TypeError: this.myFunction is not a function

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

谢谢

4

1 回答 1

5

应该没有()

runSoon = setTimeout(this.runNow, 12000);

这样你就可以将引用传递给函数this.runNow

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

将结果传递this.runNow()setTimeout(...)

于 2016-08-17T09:51:41.717 回答