gpt4 book ai didi

javascript - angularJS $timeout 立即执行方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:52 24 4
gpt4 key购买 nike

我正在使用 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 $timeout 立即执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858577/

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