ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – angularJS $超时执行方法

2019-06-11 22:11:55  阅读:225  来源: 互联网

标签:javascript angularjs android ionic


我正在使用离子框架和cordova-plugin-shake插件来检测我的一个Android应用程序的设备抖动,这是正常的.但问题是在摇动之后我想禁用这个震动检测30秒,为此我试图使用$timeout这样:

$timeout($scope.watchForShake(), 30000);

但不知何故,对于$timeout,无论延迟值是什么,$scope.watchForShake()都会立即执行.

我也尝试过使用setTimeout但结果仍然相同.

解决方法:

$timeout(和setTimeout)期望回调函数作为其第一个参数 – 即在某个超时后执行的函数.

如果要执行函数.watchForTimeout,则将该函数本身作为第一个参数传递:

var callbackFn = $scope.watchForTimeout;
$timeout(callbackFn, 30000);

30秒后,将调用函数callbackFn,不带任何参数:callbackFn().

在你的情况下,你正在调用$scope.watchForTimeout,因此将该函数的返回值作为第一个参数传递给`$timeout.那么,你目前正在做的(错误的)是:

var returnVal = $scope.watchForTimeout();
$timeout(returnVal, 300000)

标签:javascript,angularjs,android,ionic
来源: https://codeday.me/bug/20190611/1221531.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有