某些时间范围变量未设置

时间:2014-05-29 19:44:59

标签: angularjs angularjs-scope intervals

这对我来说似乎很奇怪,但我希望有人之前遇到过这个并指出我正确的方向。

我在$ interval内有一个变量在范围内设置,有时值是"坚持"有时候不是。

someInterval = $interval(function() {
SomeFactory.getsomething($scope.highestnumber)
    .then(function(response) {
        if (response.number > $scope.highestnumber)
            $scope.highestnumber = response.number;
    });
}, 30000);

大部分时间都有效 - $ scope.highestnumber使用更新后的值设置,30秒后调用getSomething()传递更新后的值。

然而,偶尔(我希望我可以按需复制),$ scope.highestnumber设置了一个新值,但getSomething()被调用它在执行更新之前的值。我已经通过在将scope.highestnumber设置为新值后捕获$ scope.highestnumber的值来验证它,然后检查在下一个周期传入getSomething()的内容。

所以序列就是......

  • $ scope.highestnumber = 10
  • getsomething(10)名为
  • 返回response.number = 11
  • $ scope.highestnumber设置为11(已验证)
  • getSomething(10)30秒后调用

0 个答案:

没有答案