小编典典

javascript中的setTimeout和angularjs中的$ timeout服务之间的区别

angularjs

我是角度框架的新手。这是我的情况,我想在一段时间后更改$ scope.variable,所以我使用了javascript setTimeout方法。

$scope.variable = 'Previous';

setTimeout(function(){
  $scope.variable='NEXT';
},3000);

此代码对我不起作用。我曾经$apply()使这段代码起作用。

后来我才知道angular本身有一个$ timeout服务,可以完成相同的工作。

$scope.variable = 'Previous';

$timeout(function () {
  $scope.variable = 'NEXT';
}, 2000);

如何比较$timeoutJavaScript服务的性能setTimeout

为什么我们应该使用$timeout而不是setTimeout??

请给我一些示例和使用它的理由,以显示性能。

谢谢 :)


阅读 220

收藏
2020-07-04

共1个答案

小编典典

在某些情况下,需要执行某种超时操作,而我们经常使用JavaScript setTimeout()函数来实现这一目的。

但是,如果setTimeout()在AngularJS应用程序中使用,则还需要使用$scope.$apply()以确保的任何更改scope都将反映在其他地方(即)中的数据绑定view

AngularJS提供了一个方便的包装为这样的:$timeout()-它确实$apply()对我们没有$apply改变。

关于 性能

如果您要$timeout用来创建本质上是间隔的内容,请不要使用它。如果您的应用程序很大,那么$apply还会触发一个$digest您可能不希望发生的循环,这肯定会降低性能。

2020-07-04