【发布时间】:2019-11-04 14:15:11
【问题描述】:
我有一个例子可以复制我实际在做的事情。当一个新项目被推入数组时,计数器会增加并将值设置为进度。
例如,我准备了一个 JSFiddle: here
new Vue({
el: '#app',
data () {
return {
valueDeterminate: 0,
total: 1000,
timeOut: 0,
iteraciones: 1000
}
},
methods: {
async Click() {
var arr = [];
var sum = 0;
this.valueDeterminate = 0;
await this.forEach(this.iteraciones, async (i) => {
await this.Sleep(1);
arr.push(1);
sum++;
this.SetProgressBar(sum);
clearTimeout(this.timeOut);
})
},
SetProgressBar(num) {
if (num) {
this.valueDeterminate = Math.round(this.Map(num));
}
},
Map(value) {
return ((value - 0) * (100 - 0)) / (this.total - 0) + 0;
},
async forEach(arr, callback) {
for(let i = 0; i < arr; i++){
await callback(arr[i], i);
}
},
Sleep(milisegundos) {
return new Promise(resolve => this.timeOut = setTimeout(resolve, milisegundos));
},
}
})
只需编辑“total”和“iteraciones”的值(两者必须相同)并运行。如果数字很高,比如 1000,则进度没有问题。但是如果值
【问题讨论】:
标签: vue.js vuetify.js