首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS Poller抛出

AngularJS Poller抛出
EN

Stack Overflow用户
提问于 2015-10-27 00:02:05
回答 1查看 583关注 0票数 1

我正在尝试为一个应用程序设置轮询,并且我有一个实现,它在最初运行的地方执行最小值,获得第一个响应,但是在调用$timeout时失败并抛出一个异常(参见下面)。我不明白为什么它不能正常投票,它看起来应该工作,API说$timeout需要一个函数.有什么想法吗?

如果我注释掉第65行$timeout(.),我不会得到错误。

异常

代码语言:javascript
复制
Error: [$http:badreq] Http request configuration must be an object.  Received: function ()
http://errors.angularjs.org/1.4.7/$http/badreq?p0=function%20()
    at angular.js:68
    at $http (angular.js:10189)
    at scoreboard-service.js:65
    at processQueue (angular.js:14745)
    at angular.js:14761
    at Scope.$eval (angular.js:15989)
    at Scope.$digest (angular.js:15800)
    at Scope.$apply (angular.js:16097)
    at done (angular.js:10546)
    at completeRequest (angular.js:10744)

轮询工厂和.run中的初始化。

轮询工厂

代码语言:javascript
复制
/**
 *
 */
.factory('ScoreboardPollFactory', ['ConfigSettings', 'ScoreboardFactory', '$http', '$timeout',
    function (ConfigSettings, ScoreboardFactory, $timeout) {

        var pollingTimeout = ConfigSettings.pollingTimeout;
        var data = {response: {}, calls: 0};

        var poll = function (courtId) {

            var courtId = 1; // testing app so hardcoded for now till API is ready

            console.log(ScoreboardFactory); // debug: has correct factory object, and never makes it back here after hitting $timeout

            ScoreboardFactory.getCourtScore(courtId).then(function (response) {
                data.response = response.data
                data.calls++;

                console.log(response); // debug: contains first response
                console.log(data);
                console.log(poll); // debug: outputs poll function

                $timeout(function() { // <-- this is line 65 from error
                    poll(courtId);
                }, pollingTimeout);
            });
        }

        poll();

        return {
            data: data
        };
    }])

/**
 *
 */
.run(['ScoreboardPollFactory', function (ScoreBoardPollFactory) {
}]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 01:18:54

这是你的问题(排好队,这样你就可以看到发生了什么事)

代码语言:javascript
复制
.factory('ScoreboardPollFactory',
            ['ConfigSettings', 'ScoreboardFactory', '$http', '$timeout',
    function (ConfigSettings,   ScoreboardFactory,   $timeout) {

您将$http服务注入为$timeout

我建议使用像ng-注释这样的构建工具来创建依赖注入数组,从而避免遇到类似的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33357723

复制
相关文章

相似问题

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