Angular JS $ timeout vs $ interval

时间:2014-04-16 09:43:19

标签: angularjs

有什么区别?我什么时候应该使用哪个?我是Angular&的新手。他们看起来和我很相似。我希望从一开始就遵循最佳实践。

2 个答案:

答案 0 :(得分:60)

$interval重复执行回调,而$timeout只是延迟回调的执行(不重复)。所以,不,他们不一样。另外,应该注意的是,它们都分别是window.setIntervalwindow.setTimeout的包装。

我还建议您阅读John Resig撰写的关于Javascript计时器如何工作的this great article

答案 1 :(得分:3)

以下是从djvirgen'sa similar Reddit question的回复中提取的一些信息:

  

您应该始终在Angular应用中使用$ timeout。原因如下:

     
      
  • 它是可注射的,使用ngMock更容易进行测试。
  •   
  • 运行摘要以确保您的视图已更新。
  •   
  • 这是可以的(这也是一个承诺)。
  •   
     

但是,如果您不想运行摘要,则只需将false作为第三个参数传递。

我猜 $ interval 具有类似的优势。