gpt4 book ai didi

angularjs $timeout 最大值

转载 作者:行者123 更新时间:2023-12-05 01:05:07 31 4
gpt4 key购买 nike

我正在使用 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);

}
]);

当这个 Controller 被实例化时,超时中的函数会立即被调用。但如果我设置:
  $scope.millisecondsLater = 2000000000; 

正如预期的那样,它似乎没有被调用,因为这是(从现在起 2000000 秒)。如果我设置 $scope.millisecondsLater = 2000 ,那么粗略的回调会在 2 秒后被调用。

似乎 $timeout 的最大值在 3000000000 到 2000000000 之间,而不是从不调用回调,而是立即调用(至少对于 chrome)。有没有人遇到过这个?以及你如何在没有一堆硬编码的情况下干净地解决它,如果 < 2000000000 在使用超时时进行检查?

提前致谢,任何见解将不胜感激!

最佳答案

我不认为这个问题是 $timeout 特有的。 Angular 的服务,但是 setTimeout存在于普通 JavaScript 中的函数(因为 $timeout 无论如何有效地包装了 setTimeout)。

最大值setTimeout可以取一个 32 位整数(即 2147483647)。任何超出的范围显然都会导致意外行为。也许将您的延迟分解成更小的块?

关于angularjs $timeout 最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922892/

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