超时angularjs中的未定义函数

用户名

我有以下控制器:

app.controller('ListeSASController', function($scope, $rootScope, $routeParams, $location, userService, RefreshSASServices, $timeout){
        this.IsUserLogged = function()
        {
            return userService.user().isLogged;
        };

        var promise = $timeout(RefreshSASServices.RafraichirSAS(), 100);

        this.getSAS = function(){
            return RefreshSASServices.getSAS();
        };

        $scope.$on('$locationChangeStart', function(){
            RefreshSASServices.ArreterLesRafraichissements();
        });
});

提供以下服务:

app.service('RefreshSASServices', function($http, userService, serverConfigService, $q, $timeout, $translate, constantsServices) {
    var listeSAS = [];
    var $this = this;

    var promiseRefreshSAS;

    // Getters
    this.getSAS = function()
    {
        return listeSAS;
    };


    //Setters
    this.clearDatas = function()
    {
        listeSAS = [];
    };


    // Communication with the server
    $this.getServerUri = function()
    {
        return serverConfigService.getServerUri()+"majsvc/";
    };




    // Fonctions de rafraichissement
    $this.ArreterLesRafraichissements = function()
    {
        if(promiseRefreshSAS !== undefined)
            $timeout.cancel(promiseRefreshSAS);
    };

    $this.GetSASFromServer = function()
    {
        var promises;
        if(userService.user().isLogged)
        {
            var uri = $this.getServerUri() + "getAllSAS/"+userService.user().UserObject._id;
            promises = $http.get(uri)
            .success(function(data, status, headers, config) {
                // this callback will be called asynchronously
                // when the response is available
                return data;
            }).
            error(function(data, status, headers, config) {
                // called asynchronously if an error occurs
                // or server returns response with an error status.
                return "";
            });
        }else{
            promises = $q.when(!userService.user().isLogged)
        }
        return promises;    
    };
    $this.RafraichirSAS = function () {
    // functions that call
            $this.GetSASFromServer()
            .then(function(promise){

                if(promise !== undefined && promise.data !== undefined)
                {
                    listeSAS = promise.data;
                    //alert('refreshing the SAS list:' + JSON.stringify(listeSAS));

                }else listeSAS = [];
                promiseRefreshSAS = $timeout($this.RafraichirSAS, 3000);
            })
            .catch(function(error)
            {
                console.error("Error :", error);
                promiseRefreshSAS = $timeout($this.RafraichirSAS, 7000);
            });
    };





});

当我使用路由加载页面时:

.when('/listeSAS', {
                templateUrl : './includes/sas/liste_sas.html',
                controller  : 'ListeSASController',
                controllerAs : 'controller'
            })

一切正常,如果我的数据在服务器上更改,并且在UI上得到更新,则我的UI也会显示我想要的内容。一切正常,除了在页面加载时出现以下错误:

TypeError: undefined is not a function
    at file:///includes/libs/angular.js:14305:28
    at completeOutstandingRequest (file:///includes/libs/angular.js:4397:10)
    at file:////includes/libs/angular.js:4705:7 

这是角度的函数“超时”,而行14305为:

try {
          deferred.resolve(fn());
        } catch(e) {
          deferred.reject(e);
          $exceptionHandler(e);
        }
        finally {
          delete deferreds[promise.$$timeoutId];
        }

为什么angular会抛出此异常?我做错什么了 ?要知道:在我的登录页面上,我设置了2个超时时间,我不会停止,因为它们刷新了“全局”变量,例如私人消息的数量。尽管有错误,但两个超时仍然有效。

我在应用程序中使用了节点webkit,当我打开此路由时(5-10秒后),它可能崩溃三分之一。

谢谢您的帮助。

GBa

您是否正在调用RafraichirSAS(),该方法返回未定义而不是传递函数?

例如,代替

$timeout(RefreshSASServices.RafraichirSAS(), 100);

$timeout(RefreshSASServices.RafraichirSAS, 100);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数返回AngularJS中未定义的

来自分类Dev

在angularjs中未定义函数参数

来自分类Dev

AngularJS指令单元测试中的未定义函数

来自分类Dev

范围未定义,在Angularjs模块中调用函数

来自分类Dev

angularJS 错误:变量未定义,即使在 isDefined() 函数中

来自分类Dev

指令的AngularJS链接函数未定义

来自分类Dev

TypeError:未定义不是函数-AngularJS

来自分类Dev

函数返回未定义的AngularJS

来自分类Dev

PubNub AngularJS未定义函数ngSubscribe

来自分类Dev

TypeError:未定义不是函数(AngularJS)

来自分类Dev

AngularJs函数形式未定义

来自分类Dev

AngularJS的自定义过滤器函数中的“未定义键”

来自分类Dev

$ routeParams在angularjs中变得未定义?

来自分类Dev

在angularjs中未定义工厂

来自分类Dev

在angularjs中未定义Toastr

来自分类Dev

在AngularJS中对象属性未定义

来自分类Dev

URLID在angularjs中未定义

来自分类Dev

AngularJS“ this”在普通对象中未定义

来自分类Dev

AngularJs中的未定义方法

来自分类Dev

在AngularJS中对象属性未定义

来自分类Dev

AngularJS中未定义的变量

来自分类Dev

$ scope在服务AngularJs中未定义:

来自分类Dev

angularjs中的未定义对象

来自分类Dev

vim:函数中未定义的变量

来自分类Dev

函数中未定义的变量

来自分类常见问题

在地图函数Reactjs中未定义“ this”

来自分类Dev

$ .getScript中未定义的函数

来自分类Dev

函数中的未定义变量

来自分类Dev

函数中未定义或空变量