Я пытался уменьшить свои объекты обещания в своем сервисе. У меня есть что-то вродеКак разрешить мои обещания в моем случае
angular.module('myApp').service('testService', ['Employees','$q',
function(Employees, $q) {
var service = {};
var firstEmp;
var deferred = $q.defer();
Employees.query({
Id: 123
}, function(objects) {
firstEmp = objects[0];
deferred.resolve(objects);
})
service.getFirstEmployee = function() {
var deferredtwo = $q.defer();
// return deferredtwo.promise;
//How to solve the double promise defer in my case
//First promise is wait for the whole employees
//this one is to return first employee
deferred.promise.then(function(){
deferredtwo.resolve(firstEmp);
})
return deferredtwo.promise;
}
return service;
]);
контроллера
testService.getFirstEmployee.then(function(firstEmployee){
console.log(firstEmployee) <---show first employee
})
Я не знаю, как разрешить объекты двойного обещания. Может кто-нибудь мне помочь? Большое спасибо!
В чем проблема с решением, которое у вас есть? –
Я думаю, что вам следует использовать методы, которые получают всех сотрудников, а другой, которые получают сотрудника по id. Имея два метода, вы можете проверить, загружены ли все сотрудники и получить первый, иначе служба запроса будет только для первой. – Raulucco
@FelixKling Создает два объекта defer, и я чувствую, что могу избавиться от него, но не знаю, как – BonJon