angular2 http のクリック イベントでは、最初のクリックは未定義で、2 回目のクリック以降のみ値を取得できます。この理由と実装方法は何ですか?
たとえば、以下のコードでは、okLogin() から名前とパスワードを取得し、返されたデータを this.result に割り当て、クリック イベントの発生後に isLogin() を実行します。isLogin は okLogin を実行します。 。しかし、最初にクリックしたときの結果は未定義であることがわかりました。2 回目にクリックしたときは、結果の値が変更されたときでも、最初のクリックでは前の値が出力されました。現在取得されている値はそうではありませんでした。どうやって解決すればいいでしょうか?
リーリー印刷された効果:
未定義
{データ中のデータ}
以前に結果の値を初期化しましたが、後で受信ユーザー名とパスワードが変更されたときに、http.get データが変更されましたが、結果は以前の値のままであり、正しく表示するには 2 回目のクリックが必要でした。
以前に count を実行していたときにもこの問題に遭遇しましたが、自動追加は 0 から直接開始され、0 は見たくなく、1 から開始するだけだったので、デフォルト値を設定しましたカウントは 1
okLogin() メソッドが正しく書かれていません。
subscribe
非同期動作があります。そのため、okLogin が呼び出されると、this.result には値が割り当てられていないように見え、isLogin は実行を継続します。修正計画:
(1)Promiseメソッド
リーリー(2)subscribeの書き方を修正