Угловой преобразователь, объект не готов в компоненте

Я использую преобразователь перед доступом к своему компоненту, например:

 return this.unitService.getRoomsByUnitId(unitId)
        .map(rooms => {
          rooms.map((room: Room) => {
            room.beds.map(bed => {
              bed.events = new Array();
              this.patientStayService.getPatientsBedOccupancyForDateRange(unitId, startDate, endDate)
                .subscribe(patientStays => {
                  patientStays.map(patient => {
                    if (bed.id === patient.bedId) {
                      let calendarEvent: CalendarEvent = new CalendarEvent();
                      calendarEvent.patientStay = patient;
                      calendarEvent.startDate = patient.admissionPlannedDate;
                      calendarEvent.endDate = patient.earlyDischargeDate;
                      bed.events.push(calendarEvent);
                    }
                  });
                });
            });
          });
          return rooms;
        });

Но в моем компоненте, когда я получаю объект "rooms", информация о bed и calendarEvent еще не установлена.

Если я сделаю

console.log(bed.events.length);

Я всегда получаю 0, но если я консоль записываю свой объект "rooms", у меня действительно есть события в моем объекте кровати. Итак, я думаю, когда я консоль регистрирую свой events.length, код для установки событий в постель еще не закончен?

твоя функция заставила мои глаза кровоточить. Вы забыли несколько return, которые нарушили асинхронность вашего резолвера ... поэтому не дожидаются завершения, прежде чем разрешить.

Jscti 10.09.2018 11:45

куда мне положить еще один возврат?

Helene 10.09.2018 11:49
javascript.info/promise-chaining
Jscti 10.09.2018 11:55

извините, но можете ли вы помочь с примером ?? ... у меня есть наблюдаемое, а не обещание. он работает так же? Я пропускаю только несколько возвратов или мне тоже следует использовать «тогда»?

Helene 10.09.2018 14:14
0
4
50
0

Другие вопросы по теме