2 回答

TA貢獻1809條經驗 獲得超8個贊
加載程序應在您的請求開始之前顯示。請注意,當請求完成時axios.get()
返回一個Promise
解析,因此您可以使用Promise.prototype.finally
關閉它Promise
來隱藏加載程序:
mounted() {
// show loader while fetching messages...
const loader = this.$loading.show()
backend.getMessages()
.then(resp => /*...*/)
.finally(() => loader.hide())
}
async
這是用/await
編寫它的另一種方法:
async mounted() {
// show loader while fetching messages...
const loader = this.$loading.show()
try {
const resp = await backend.getMessages()
/*...*/
} finally {
loader.hide()
}
}

TA貢獻1812條經驗 獲得超5個贊
var loading在您的數據中添加一個。
展示<div v-if="loading">Spinner here</div>
然后
getMessages: function (peer) {
this.loading = true; // AJAX request is loading
return axios.get(`${host}/api/messages`, {
params: {
me: localStorage.getItem("user_id"),
device: localStorage.getItem("device_id"),
peer: peer
}
})
},
loadMessages() {
var self = this;
backend.getMessages().then(function(resp) {
self.previousDate = null;
self.messages = resp.data;
self.openLoader();
self.loading = false // spinner disappear
});
},
添加回答
舉報