有什么区别?我什么时候应该使用哪个?我是Angular&的新手。他们看起来和我很相似。我希望从一开始就遵循最佳实践。
答案 0 :(得分:60)
$interval
重复执行回调,而$timeout
只是延迟回调的执行(不重复)。所以,不,他们不一样。另外,应该注意的是,它们都分别是window.setInterval
和window.setTimeout
的包装。
我还建议您阅读John Resig撰写的关于Javascript计时器如何工作的this great article。
答案 1 :(得分:3)
以下是从djvirgen's对a similar Reddit question的回复中提取的一些信息:
您应该始终在Angular应用中使用$ timeout。原因如下:
- 它是可注射的,使用ngMock更容易进行测试。
- 运行摘要以确保您的视图已更新。
- 这是可以的(这也是一个承诺)。
但是,如果您不想运行摘要,则只需将false作为第三个参数传递。
我猜 $ interval 具有类似的优势。