【问题标题】:Angular, using variable for timer in setTimeout doesn't workAngular,在 setTimeout 中使用定时器变量不起作用
【发布时间】:2020-08-07 15:14:07
【问题描述】:

如果我直接为setTimeout(() =>{}, 300000) 使用数字,则 setTimeout 将在 5 分钟后触发。但是,如果我使用全局变量,它会立即触发:

export class MyComponent implements OnInit {
  timeoutCounter = 300000;

  constructor(){}

  ngOnInit() { this.fireMe(); }

  fireMe() {
    setTimeout(() =>{}, this.timeoutCounter);
  }
}

理论上它应该以相同的方式触发,但 setTimeout 触发就像我根本没有提供任何值一样。

【问题讨论】:

  • 可能是因为它是未定义的,因此“立即执行”你可以尝试在构造函数中为你的变量赋值吗?
  • @EugenSunic 这就是我的假设,但是......为什么?我需要一个全局变量来设置其他一些超时。必须为每个设置值会使代码维护变得很痛苦。
  • 无法重现。上面的代码按我的预期工作。
  • 那么你想达到什么目的呢?

标签: javascript angular settimeout


【解决方案1】:

只需定义一个名为 getTimeOut() 的新函数,使用任何你想要的限制,并在你的类中使用“this”调用该方法。

它不起作用,因为您没有在 setTimeout() 中调用任何函数, setTimeout 通常需要两个参数,函数和时间戳。 setTimeout(function(), 时间戳)

【讨论】:

  • 有道理!能否提供一个代码示例来帮助说明?
猜你喜欢
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2013-09-28
  • 1970-01-01
  • 2023-03-30
  • 2016-01-09
相关资源
最近更新 更多