2017-06-11 1 views
0

HTTPの取得/ポスト要求を実行しようとしています。 CLIを使用してAngular 4を新しくインストールしても、私は珍しい問題に直面しています。私が最初の試みのために要求を送るとき、それはconsole.log()undefinedを与えるが、2回目の試行データからは正常に表示される。サーバとしてのLaravelやJSONファイルでも同じ結果になります。しかし、フェッチされたデータを印刷する間、数秒後に印刷されます。しかし、それはOKです。最初に試行したときのHTTPの取得/ポストの問題

投稿のリクエストにも同様の問題が発生します。フォームが何も送信しない場合は、最初の試行で何かが発生し、console.log()にサーバーが接続されていない(何か)というエラーが表示され、2度目の試行で正常に送信されます。

this.http.get(path).subscribe(data => this.response = data); 
this.http.post(path, formData).subscribe(data => this.response = data); 
+0

'this.response'がすぐに利用できると思っているのであれば、これは*非同期的に発生することを理解していませんでしたが、明らかに間違ったことはありません。使用可能な文脈を提供する[mcve]を与えてください。 – jonrsharpe

+0

これ以上の情報がなくても、これは問題だと思います... https://stackoverflow.com/questions/43055706/how-do-i-return-the-response-from-an-observable-http-async -call-in-angular2 – Alex

答えて

0

返信ありがとうございます!わかった。!このコードを完了するためにHTTP応答を待機しません、代わりに即座にトリガを取得した後、我々は、HTTPからの戻りデータで行う必要があるものは何でも

this.http.post(path, formData).subscribe(
data => { 
this.response = data, 
//should be here <<-- 
} 
); 

ものでなければなりません。

関連する問題