これを呼び出した後、http は未定義ですが、イベントをクリックすると出力できます。
何が起こっているのでしょうか? http のインジェクションには Angular が使用されます。 http コードは次のとおりです:
let a = new loginCtrl(http)
コンストラクターにhttpを与えていません
非同期メソッドを挿入し、他のメソッドは同期メソッドであるため、同期メソッドは上から下に実行されますが、非同期メソッドが発生すると、実行のために新しいスレッド、つまり http に挿入したメソッドが開かれます。ログイン メソッドを並行して実行すると、ログイン スレッドの実行が終了した後、値を返す前に HTTP インジェクション スレッドがそれを出力します。ただし、クリック イベントを追加した後、イベント トリガー スレッドが開かれ、イベントがトリガーされると、スレッドは処理対象のキューの最後にイベントを追加するため、クリック後に http インジェクションが受信された後に返される値が返されます。おそらくそうだろう。
let a = new loginCtrl(http)
コンストラクターにhttpを与えていません
非同期メソッドを挿入し、他のメソッドは同期メソッドであるため、同期メソッドは上から下に実行されますが、非同期メソッドが発生すると、実行のために新しいスレッド、つまり http に挿入したメソッドが開かれます。ログイン メソッドを並行して実行すると、ログイン スレッドの実行が終了した後、値を返す前に HTTP インジェクション スレッドがそれを出力します。ただし、クリック イベントを追加した後、イベント トリガー スレッドが開かれ、イベントがトリガーされると、スレッドは処理対象のキューの最後にイベントを追加するため、クリック後に http インジェクションが受信された後に返される値が返されます。おそらくそうだろう。