Код на который наследуется. Я упростил все, что мог, чтобы задать вопрос.Невозможно прочитать свойство 'then' неопределенного с вложенными вызовами функций
У меня есть простой угловой сервис, который делает API вызова и возвращает результаты:
doWork = function(reqId) {
return $http.get('/api/dowork/' + reqId).then(function(response) {
return response.data;
}).catch(function(response) {
return $q.reject(response.data);
});
}
mediumRequest = function() {
var req = 'medium';//normally do something hard to derive this value
return this.doWork(req);
}
В мой контроллер, я могу вызвать функцию DoWork на службе и получить обратно хороший ответ, как это:
myService.doWork('simple').then(function(response){
//do something great with response
});
Однако, если мне нужно вызвать промежуточный метод предварительной обработки запроса, я получаю «не удается прочитать свойство„ затем“неопределенных»:
myService.mediumRequest().then(function(response){
//do something great with response
});
Почему функция mediumRequest не возвращает обещанное doWork?
Как насчет 'return this.doWork (req)' ?? –
Можете ли вы привести минимальный воспроизводимый пример, который не требует вызовов API? –
Я отредактировал свой пример кода, чтобы включить «this.doWork (req)», так как это закодировано мой фактический сервис. @LeonardoChaia Этот код не работает. –