我有一个非常基本的Vue组件,我希望在setTimeout
内递归调用一个方法。
从mounted
生命周期调用方法(一次)按预期工作。
但后来调用自己总是给出Uncaught TypeError: ... is not a function
。
new Vue({
el: '#app',
mounted() {
this.check();
},
methods: {
check: () => {
console.log('Checking');
// error: self.check is not a function
let self = this;
setTimeout(function() {
self.check();
}, 500);
// error: this.check is not a function
setTimeout(function() {
this.check();
}.bind(this), 500);
// does nothing
setTimeout(this.check, 500);
// error: this.check is not a function
setTimeout(() => {
this.check();
}, 500);
},
}
})

<script src="https://unpkg.com/vue"></script>
<div id="app"></div>
&#13;