コンポーネントのロード時に非同期リクエストを行うとします。このコンポーネントには、ユーザーがこのボタンを押すと、元のリクエストの結果に応じて関数をトリガーできる送信ボタンもあります。非同期リクエストが完了するまでトリガーされた関数の実行を遅らせるにはどうすればよいですか?
これが意味がわからない場合は、例を挙げてみましょう。 MyComponent
非同期リクエスト getRandomColor()
を mounted
で作成します。 MyComponent
のテンプレートには <button @click="handleClick">
があります。 handleClick
いくつかの関数 saveColor()
を呼び出します。非同期 getRandomColor()
が完了する前に saveColor()
が呼び出されないようにするにはどうすればよいですか?
現在 Vue.js を使用していますが、この質問はすべての JavaScript に当てはまると思います。
これを実現するには、ボタン要素に
:disabled
属性を追加します。:disabled
の値は応答に基づきます。つまり、応答がある場合は有効にし、応答がない場合は無効にします。動作デモ: