gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:19:31 25 4
gpt4 key购买 nike

我是 Angular 框架的新手。这是我的场景,我想在一段时间后更改我的 $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);

如何比较 $timeout 服务与 javascript setTimeout 的性能??

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

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

谢谢:)

最佳答案

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

但是,如果我们在 AngularJS 应用程序中使用 setTimeout(),我们还需要使用 $scope.$apply() 来确保对 >范围将反射(reflect)在其他地方(即 View 中的数据绑定(bind))。

AngularJS 为此提供了一个方便的包装器:$timeout() - 它执行我们不执行的 $apply()必须$应用更改。

关于性能

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

关于javascript - javascript中的setTimeout和AngularJS中的$timeout服务之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39310992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com