Vue.js 设置间隔不';不要在vue中开火
我正在学习vue和setInterval是否不像在普通javascript中那样工作?问题是我的更新功能没有被激活。 start从一个按钮触发,小时/分钟/秒被绑定到v-model的输入字段,我得到setInterval之前的所有console.logVue.js 设置间隔不';不要在vue中开火,vue.js,Vue.js,我正在学习vue和setInterval是否不像在普通javascript中那样工作?问题是我的更新功能没有被激活。 start从一个按钮触发,小时/分钟/秒被绑定到v-model的输入字段,我得到setInterval之前的所有console.log export default Vue.extend({ name: "timer-c", data() { return { startDate: undefined, hours: "",
export default Vue.extend({
name: "timer-c",
data() {
return {
startDate: undefined,
hours: "",
minutes: "",
seconds: "",
timeLeft: undefined,
endDate: undefined,
interval: undefined,
text: "00:00:00",
sub: undefined,
};
},
methods: {
start: function() {
if (this.sub === undefined) {
let sum = 0;
if (this.seconds.match(/^\d+$/)) {
sum = sum + this.seconds * 1000;
console.log(sum);
}
if (this.minutes.match(/^\d+$/)) {
sum = sum + this.minutes * 60 * 1000;
}
if (this.hours.match(/^\d+$/)) {
sum = sum + this.hours * 60 * 60 * 1000;
}
if (sum === 0) {
console.log(this.$refs.br_start);
this.failed = true;
} else {
console.log(sum);
this.failed = false;
this.endDate = new Date(Date.now() + sum);
console.log(this.endDate);
this.startDate = new Date(Date.now());
console.log(this.startDate);
this.interval = setInterval(time => this.update, 1000);
//this.sub = this.interval.subscribe(time => this.update(time));
}
}
},
update: function() {
console.log('test');
const timeRemaining = Math.round((Date.now() - this.endDate) / 1000);
this.text = timeRemaining;
if (new Date(Date.now()) >= this.endDate) {
console.log("test");
}
},
尝试不返回函数,而是执行它
this.interval = setInterval(time => { this.update(time) }, 1000);
谢谢,现在它可以工作了,但是在开始之前有一个延迟。你可以在这里找到这个问题的答案:然后你可以执行这个。在间隔之前更新(时间)以立即执行