2 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
加載程序應(yīng)在您的請(qǐng)求開始之前顯示。請(qǐng)注意,當(dāng)請(qǐng)求完成時(shí)axios.get()
返回一個(gè)Promise
解析,因此您可以使用Promise.prototype.finally
關(guān)閉它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貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
var loading在您的數(shù)據(jù)中添加一個(gè)。
展示<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
});
},
添加回答
舉報(bào)