当前位置: 首页 > 面试题库 >

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

关正雅
2023-03-14
问题内容

我是角度html" target="_blank">框架的新手。这是我的情况,我想在一段时间后更改$ 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??

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

谢谢 :)


问题答案:

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

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

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

关于 性能

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



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : JavaScript比较中应使用哪个等于运算符(== vs ===)? (49个答案) 5个月前关闭。 和之间的区别是什么?我也看过和运算符。还有更多这样的运营商吗? 问题答案: 并且是严格的比较运算符: JavaScript具有严格和类型转换相等性比较。为了相等,要比较的对象必须具有相同的类型,并且: 当两个字符串在相同位置具有相同的字符序列,相同的长

  • 本文向大家介绍setTimeout、setInterval和requestAnimationFrame之间的区别?相关面试题,主要包含被问及setTimeout、setInterval和requestAnimationFrame之间的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 这里有一篇文章讲的是requestAnimationFrame:http://www.cnblogs.c

  • 问题内容: 我已经使用AngularJS了一段时间,并且发现需要不时使用$ timeout (似乎通常是初始化jQuery插件)。 最近,我一直在尝试更好地和更深入地了解摘要周期,并且遇到$ evalAsync 函数。 似乎该函数产生与相似的结果,只是您不给它延迟。每次使用时,它的延迟都为0,所以现在我想知道是否应该使用它。 两者之间有根本区别吗?您会在哪种情况下使用另一种情况?我想更好地了解何时

  • 问题内容: 我试图了解$ interval和setInterval之间的区别。我有这个测试: 使用 setInterval 不会更新HTML页面上的值,但实际上该值在浏览器控制台上会更改,但不会在HTML页面上更新。 但是如果我这样做: } 这似乎工作得很好,所以我真的不知道为什么后者不起作用,但是我真的很想知道。 同样,从后台不断请求数据的最佳方法是每隔n分钟说一次并通过其控制器更新页面。 问题

  • 问题内容: 我有问题,同时了解和SQL Server中的运营商。 考虑以下示例查询,它们在各自的输出中具有不同的行为: 第一个查询将提供所需的输出,即选择那些具有值的记录。但是第二个查询将导致匹配记录为零。 请根据优缺点说明这些运算符的不同用法。 编辑 在这里,大多数答案都声称不适用于,但是以下语句将与和一起使用。 这将提供与具有操作符的语句相同的结果。 问题答案: 没有什么等于。 甚至不等于。

  • 问题内容: 我正在通过docker compose中的选项。显然,您可以从容器或服务导入卷。从docker compose文档中是: volume_from 从另一个服务或容器挂载所有卷,可以选择指定只读访问(ro)或读写(rw)。 注意:仅版本2文件格式支持container:…格式。在版本1中,您可以使用容器名称而无需将其标记为: 我很困惑,这里的容器和服务有什么区别? 问题答案: 服务和容器