@Zewkin
Я у мамы фронтэндер

Почему .then is not a function?

controller.js

.controller('NearCtrl', function($scope, $http, $cordovaSQLite, EventService) {
    EventService.getDataFromDB().then(function(result) {
        if (result.length > 0) {
            EventService.populateData(result).then(function(items) {
                $scope.items = items;
            })
        } else {
            EventService.getDataFromApi().then(function() {
                EventService.getDataFromDB().then(function(result) {
                    EventService.populateData(result).then(function(items) {
                        $scope.items = items;
                    })
                })
            })
        }
    });
})


services.js

.factory('EventService', function($http, $cordovaSQLite) {   
	return {
        //some code here..
        populateData: function(data) {
            var items = [];
            for (i = 0; i < data.length; i++) {
                items.push(data[i]);
            }
            return items;
        }
	}
})


Получаю TypeError: EventService.populateData(...).then is not a function
Что не так? Спасибо.
  • Вопрос задан
  • 3665 просмотров
Решения вопроса 1
@ElianL
javascript-разработчик
populateData возвращает обычный массив
А .then() обычно метод у объекта типа promise
В данном случае в нем нет необходимости и код нужно заменить на
EventService.populateData(result).then(function(items) {
    $scope.items = items
 })


нужно заменить на
$scope.items = EventService.populateData(result)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы