Add a bind() call to your function declaration:
setTimeout(function () { this.fetchHole() }.bind(this), 1000)
so that your Vue component’s this is accessible within the function.
Side note: @nospor’s accepted answer is cleaner in this particular situation. The bind approach is a bit more generalized – very useful if you want to do an anonymous function, for example.