Angular でサーバーからデータを取得するObservable を使用しようとすると、初期値が未定義になる可能性があります
@Injectable() export class EventService { ... getEventList(): Observable<any> { ... return this.http.get(...).map(...).catch(...); } }
export class EventComponent { myEvents: any; ngOnInit() { this.es.getEventList().subscribe((response) => { this.myEvents = response; }); console.log(this.myEvents); // Initially undefined } }
HTTP リクエストは非同期です。つまり、console.log( this.myEvents) 行は応答の前に実行されます
サブスクライブ コールバックを使用して、応答が到着した後にのみ応答を処理します。
ngOnInit() { this.es.getEventList().subscribe((response) => { this.myEvents = response; console.log(this.myEvents); // Not undefined }); }
以上がAngular で Observable からの非同期応答を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。