假設當元件載入時我發出一個非同步請求。該元件還有一個提交按鈕,使用者可以按下該按鈕來觸發依賴原始請求結果的函數。如何延遲執行觸發的函數,直到非同步請求完成?
如果這沒有意義,讓我舉個例子。 MyComponent
在 mounted
上發出非同步請求 getRandomColor()
。 MyComponent
的模板有 <button @click="handleClick">
。 handleClick
呼叫一些函數 saveColor()
。如何確保在非同步 getRandomColor()
完成之前不會呼叫 saveColor()
?
我目前正在使用 Vue.js,但我認為這個問題適用於所有 javascript。
您可以透過在按鈕元素中新增
:disabled
屬性來實現此目的。:disabled
的值將基於回應。即,如果有響應,則啟用它,否則禁用。工作演示: