Aar*_*ron 4 timeout settimeout angularjs angularjs-service
我正在使用angularjs,尤其是$ timeout服务(setTimeout上的包装器).它的工作原理如下:
angular.module('MyApp').controller('MyController', ['$scope', '$timeout',
function($scope, $timeout) {
$scope.millisecondsLater = 3000000000;
$timeout(function(){
console.log('it\'s been ' + $scope.millisecondsLater + ' later');
}, $scope.millisecondsLater);
}
]);
Run Code Online (Sandbox Code Playgroud)
当实例化该控制器时,立即调用超时中的函数.但是,如果我设置:
$scope.millisecondsLater = 2000000000;
Run Code Online (Sandbox Code Playgroud)
它似乎没有被调用,正如预期的那样,因为这是(从现在起2000000秒).如果我设置$ scope.millisecondsLater = 2000,那么回调会在2秒之后被调用.
似乎$ timeout的最大值介于3000000000和2000000000之间,而不是永远不会调用它立即被调用的回调(至少对于chrome来说).有没有人遇到过这个?如果每次超时使用<2000000000检查,你是如何在没有一堆硬编码的情况下彻底解决它的?
在此先感谢,任何见解将不胜感激!
我不认为这个问题特别适用于$timeoutAngular 的服务,而是setTimeout普通JavaScript中存在的函数(因为无论如何都$timeout有效地包装setTimeout).
setTimeout可以采用的最大值是32位整数(即2147483647).超出范围显然会导致意外行为.也许可以将你的延迟分解成更小的块?
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |