JS является асинхронным.Это означает, что он не будет ждать завершения любого запроса ввода-вывода и продолжит выполнение следующих строк кода.
В вашем случае getActivityInstance
метод является асинхронным, поэтому JS не будет ждатьэто завершить, и он будет выполнять следующую строку.Следовательно,
editedInstance : this.dataInstance["dataEntries"]["demande"]["value"]
выполняется до того, как сервис вернет данные (это время dataInstance
будет undefined
, если вы его не инициализировали).
Измените ваш код следующим образом:
this.activityService.getActivityInstance(this.sessionService.getPrincipal(),
this.activityInstanceIdentifier,
this.activityInstanceAttachement)
.subscribe((ActivityInstance)=>{
this.dataInstance=ActivityInstance;
forms = [
{
dataEditionMode:DataEditionMode.DISPLAY,
name:"demande",
editedInstance:this.dataInstance["dataEntries"]["demande"]["value"],
component:DemandeFormComponent,
multiple:false
}
]
});