Я должен получить description
в переменной tmp
, и я не знаю, как синхронизировать этот код, может кто-нибудь мне помочь?Как я могу синхронизировать код обратного вызова?
Мы хотим отобразить имя пользователя контакта first_name в календаре, то есть прикрепить заголовок к user.first_name. Таким образом, мы захватываем все события с сервера, однако для каждого события есть заказы и заказы, содержащие идентификатор пользователя, чтобы захватывать пользовательские данные от contact_users. Затем нам нужно построить объект и нажать его в массив, который имеет все события, а именно tmp
. callback
вызывается в конце для отображения событий в календаре.
Event.query({
businessId: $stateParams.businessId
})
.$promise.then(function(events) {
events.forEach(function(event) {
var tmpData = {};
var description = '';
$http.get('/businesses/'+event.business_id+'/events/'+event.id+'/bookings')
.then(function(bookings) {
if(bookings.data) {
$http.get('/businesses/'+event.business_id+'/contact_users/'+bookings.data[0].people_id)
.then(function(user) {
description = user.data.first_name;
});
}
});
tmpData = {
eventId: event.id,
title: description,
start: event.starts_at,
end: event.ends_at,
business_id: event.business_id,
employment_id: event.employment_id,
professional_id: event.professional_id,
service_id: event.service_id,
};
tmp.push(tmpData);
});
return tmp;
}).then(function(result) {
callback(tmp);
});
Обратный вызов связан с fullcalendar callback
события обжигали в методе events
.
Вы просто не можете сделать асинхронную операцию внезапно синхронной. В Javascript это невозможно. Похоже, вы пытаетесь использовать обещания, что хорошо. Но выполнение является ошибочным. У вас, по-видимому, есть несколько «событий», которые вы пытаетесь выполнить. Если вы можете описать словами, что вы пытаетесь выполнить с этими событиями (используйте ссылку для редактирования, чтобы изменить свой вопрос), то мы, вероятно, сможем помочь вам исправить этот код. Но, пожалуйста, опишите желаемый результат словами. Когда вы редактируете вопрос, напишите мне комментарий, и я посмотрю. – jfriend00
Я сделал изменения, вы можете это понять? Я могу описать больше, очень ценю вашу помощь[email protected] jfriend00 –