无法阅读财产'最后'在尝试进行Rest调用时未定义

时间:2016-11-16 11:03:09

标签: javascript angularjs angular-promise

我的项目中定义了一个休息服务,它将url和callback函数作为参数加入。

RestApiService

    service.requestFromApi = function(url, cb) {
        return service.request(config.ApiEndpoint.Base + url, cb);
    };

    service.request = function(url, cb) {
    if(typeof cb !== 'function') {
        throw new Error('Function expected');
    }

    $http.get(url).then(function(response) {
        if (response.status === 200) {
            if (typeof response.data === 'object') {
                return cb(response.data);
            }
        }
    }, function(response) {
        $window.console.error('Requesting ' + url + ' from server failed (' + response.status + ' ' + response.statusText + ')');
    });
};

我使用以下方法调用此服务:

     service.watch = function () {
        restApiService.requestFromApi('/crossing' + '?latitude=' + latestCoords.latitude + '&longitude=' + latestCoords.longitude + '&radius=' + config.radiusInMetres, updateHandler)
        .finally(function() {
            $timeout(service.watch, 5000);
        });
    };


    var processData = function (item) {
        crossing[item.crossingName] = item;
    };

    var updateHandler = function (json) {
        if (json.events && Array.isArray(json.events)) {
            json = json.events;
        } else {
            $log.warn('Smissing events field');
        }

        if (json.length > 0) {
            angular.forEach(json, processData);
        }
    };

为了确保仅在上一个请求完成之后的下一个请求,我使用了finally块。但是我收到错误无法读取属性'最后'未定义。。我有一个提示,这是关于一些返回值,但我不确定问题的确切性质。

0 个答案:

没有答案