Я пытаюсь извлечь значения из наблюдаемых, моя подписки (компонент) код, как следует:Наблюдаемые Неопределенное
this.checkoutService.getDisabledDate().subscribe
(dates=>{this.formattedDate=dates},
(error:any)=>{console.log(error)});
В обратном вызове «дат» console.log из this.formattedDate печатает правильные значения. Однако попытка доступа к this.formattedDate вне подписки не определена.
код службы:
getDisabledDate():Observable<any>{
let headers = new Headers({'Content-Type': 'application/json' });
let options = new RequestOptions({headers:headers});
let userRequest={action_id:0};
let disabledDate={};
return this.http
.post(this.deliveryUrl,userRequest,options)
.map((r:Response)=>r.json())
.catch(this.handleError);
}
Я выполнил то же действие передачи данных по queryParam, используя короткую форму(), и это не имеет никакого значения в данном случае. Я, кажется, не замечаю, что нужно, чтобы вытащить информацию с этим.
Я посмотрел на обоих: Angular2 HTTP using observables subscribe showing data undefined и Angular 2 return data from service is not availabe after RxJs subscribe.
Который я передал, когда на их вопросы был дан ответ. Что мне не хватает?
Как пытаетесь получить доступ к этим данным? С вашей точки зрения? Вы использовали * ngIf, как это предлагается в одном ответе, если это так? – Alex
Похоже, вы пытаетесь получить доступ к данным, прежде чем они будут доступны. Он доступен только ПОСЛЕ того, как наблюдаемое возвращает значение для него. Вы уверены, что наблюдаемое возвращается, то есть '' this.formattedDate = dates' вызывается, прежде чем пытаться получить к нему доступ? Это мое лучшее предположение. – VSO
Это технически обман того, как вернуть значение из асинхронной функции. –