使用setInterval模拟计算程序进行计时

return {
calTime: 0, // 单位秒
btnLoading: false,
}
execCal(){
return new Promise((resolve) => {
setTimeout(()=>{
this.btnLoading = false
console.log('模拟axios请求执行')
resolve('计算执行完毕')
},5400)
})
},
btnClick() {
// 开始计算按钮Loading
this.btnLoading = true
// 清空时间
this.calTime = 0
// 开始计时
let interval = setInterval(()=>{
this.calTime ++
console.log('计数器执行')
},1000)
this.execCal().then((res) => {
this.$Message.success(res)
// 执行成功,结束计时
clearInterval(interval)
})
},
<Row>
<Col span="4" offset="4">
<p>计算执行中,计算耗时{{calTime}}秒...p>
Col>
<Col span="2">
<Button :loading="btnLoading" @click="btnClick">
<span v-if="!btnLoading">开始计算span>
<span v-else>计算中...({{calTime}}s)span>
Button>
Col>
Row>
努力,奋斗