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
});
},
添加回答
举报