小编典典

AngularJS 中的 $evalAsync 和 $timeout 有什么区别?

all

我已经使用 AngularJS 有一段时间了,并且发现需要每隔一段时间使用$timeout (似乎通常是初始化一个 jQuery
插件)。

最近,我一直在尝试更好更深入地了解摘要循环,结果发现了$evalAsync函数。

似乎该函数会产生与
类似的结果$timeout,只是您不要给它延迟。每次我使用$timeout它的延迟都是0,所以现在我想知道我是否应该使用它$evalAsync

两者之间有什么根本区别吗?您会使用哪种情况?我想更好地了解何时使用哪个。


阅读 94

收藏
2022-08-05

共1个答案

小编典典

总结一下:

  • 如果代码使用 指令中的 $evalAsync 进行 排队,它应该在 Angular 操作 DOM 之后 ,但 浏览器呈现之前运行
  • 如果代码使用 来自控制器的 $evalAsync 进行 排队,它应该在 Angular 操作 DOM 之前 (以及在浏览器呈现之前)运行——你很少需要这个
  • 如果代码使用 $timeout 排队,它应该在Angular 操作 DOM 之后运行,并且 浏览器渲染之后运行(在某些情况下可能会导致闪烁)
2022-08-05