Recently, when using vue2 to build a project, I encountered the need for an active countdown. When using setTimeout to simulate the effect of setInterval, something went wrong (of course, using the latter can easily solve the problem)
let myTimer = setTimeout( () => {
if (diffTimer > 0) {
hours = Math.floor(diffTimer/3600);
minutes = Math.floor((diffTimer/60)%60);
seconds = Math.floor(diffTimer%60);
this.hours = hours > 9 ? hours : '0' + hours;
this.minutes = minutes > 9 ? minutes : '0' + minutes;
this.seconds = seconds > 9 ? seconds : '0' + seconds;
} else {
clearTimeout(myTimer);
}
diffTimer--;
setTimeout(arguments.callee,1000);
},1000)
The result is the following error:
It seems that the arguments object cannot be found in the strict mode of es6...
The arguments object cannot be used when using arrow functions. This object does not exist in the function body. If you want to use it, you can use Rest parameters instead.