首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问可变间隔

访问可变间隔
EN

Stack Overflow用户
提问于 2015-03-09 09:41:52
回答 2查看 75关注 0票数 1

我怎样才能让qLength进入这个过程:

代码语言:javascript
复制
var intervalPromise = $interval( function (){
    $http.get(request).success(function (datatemp) {                    // Get Queue info JSON every 2s
        if (angular.equals(store.queues, datatemp)) {               //if like the last, no change
            console.log('Same values');
            qLength =  store.queues.Jobs.length;
        } else {                                                    //Else, update
            store.queues = datatemp;
            console.log('Values updated')
        }
    });
}, 3000, 0);

console.log(qLength);

console.log(qLength)返回未定义的。

当我尝试使用窗口时,结果是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-09 11:02:49

您无法以这种方式获得qLength,因为$interval()$http.get()请求是以异步方式运行的。您正在尝试访问只能以同步方式异步访问的值。获取所寻找的值的一个简单方法是创建一个函数,该函数接受长度本身,并在满足请求时调用它。

代码语言:javascript
复制
var qLengthCheck = function(length) {
  // This logs the length in each interval
  console.log(length);
};

var intervalPromise = $interval( function (){
    $http.get(request).success(function (datatemp) {                    // Get Queue info JSON every 2s
        if (angular.equals(store.queues, datatemp)) {               //if like the last, no change
            console.log('Same values');
            qLength =  store.queues.Jobs.length;
        } else {                                                    //Else, update
            store.queues = datatemp;
            console.log('Values updated')
        }

        qLengthCheck(length);
    });
}, 3000, 0);

如果您在异步进程方面有问题,可以在这个stackoverflow answer中检查这个好的非编程示例。

票数 0
EN

Stack Overflow用户

发布于 2015-03-09 09:59:00

您错过了qLength的赋值变量

试试下面的代码

代码语言:javascript
复制
**var qLength="";**
var intervalPromise = $interval( function (){
    $http.get(request).success(function (datatemp) {                    // Get Queue info JSON every 2s
        if (angular.equals(store.queues, datatemp)) {               //if like the last, no change
            console.log('Same values');
            qLength =  store.queues.Jobs.length;
        } else {                                                    //Else, update
            store.queues = datatemp;
            console.log('Values updated')
        }
    });
}, 3000, 0);

console.log(qLength);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28938867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档