У меня есть функция, которая возвращает данные, которая называется medicalService.getMedicalEvents()
.Таким образом, я отслеживаю все медицинские события, и теперь для каждого медицинского события мне нужно передать id
другой функции, чтобы перехватить всех участников этого события.medicalService.getMedicalAttendees(idMedicalEvent)
когда я собрал всех участников для каждого события, мне нужно повторить процесс, чтобы получить все цели.Таким образом, для каждого участника я получу функцию medicalService.getTarget(accountId)
, accountId - это идентификатор участника.
, когда я получу все цели, которые мне нужно будет сделать для каждого, чтобы создать один объект со всей необходимой мне информацией.Как и eventName
из первого forEach, attendeeName
из второго forEach и target
третьего forEach.
Мой вопрос связан с обещаниями, как я могу с обещаниями быть в состоянии вернуть объект, созданный таким образом?call.mainObj
?
medicalService.getMedicalEvents().then(function(resp) {
call.medicalEvents = resp.data;
call.numberEvents = call.medicalEvents.length;
call.medicalEvents.forEach(function(event) {
var deferred = $q.defer();
var idMedicalEvent = event.Id.value
medicalService.getMedicalAttendees(idMedicalEvent).then(function(resp2) {
call.allAttendeesForEvent = resp2.data;
call.allAttendeesForEvent.forEach(function(attendee) {
var accountId = attendee.Account_vod__c.value;
medicalService.getTarget(accountId).then(function(resp3) {
call.targetInfo = resp3.data;
call.targetInfo.forEach(function(target) {
var targetName = "C";
if (target.SRV_INT_Team_target__c.value !== undefined && target.SRV_INT_Team_target__c.value !== "") {
targetName = target.SRV_INT_Team_target__c.value;
}
call.mainObj.push({
eventName: event.Name.value,
attendee: attendee.Name.value,
target: targetName,
speciality: attendee.SRV_Specialty__c.value
});
})
})
})
})
medicalEventsDeferred.resolve(resp);
},
function(resp) {
medicalEventsDeferred.reject(resp);
})