У меня возникли проблемы с методом window.setInterval(). Ниже приведен пример структуры, метод «repeat» вызывается многократно, однако я не могу вызывать какие-либо методы внутри «repeat». В примере, когда я создаю менеджер (пусть m = новый менеджер()), он напечатает «Before Print», но не распечатает журнал из метода printStuff или сообщение «После печати».typescript window.setInterval() не работает должным образом
Кто-нибудь знает, почему это происходит? Очевидно, это не мой фактический код, поскольку он достаточно прост, чтобы не быть в отдельных функциях, однако мой фактический код должен вызывать многие функции в функции «повторить», и он прекратит выполнение, когда найдет вызов другой функции.
class manager{
constructor(){
window.setInterval(this.repeat, 5000);
}
repeat(){
console.log("Before Print");
this.printStuff();
console.log("After Print");
}
printStuff(){
console.log("Print Stuff");
}
Try 'setInterval (this.repeat.bind (this), 5000)' - Вы проверяли консоль на наличие сообщений об ошибках? Я бы ожидал, что что-то о 'printStuff' будет неопределенным, потому что то, как вы это делаете, это не то, что вы думаете ... – nnnnnn
Этот вопрос задан сто раз. Пожалуйста, ищите труднее. Вы могли бы отключиться, прочитав, как это работает. –
См. Также http://stackoverflow.com/questions/37802436/why-does-method-on-object-loose-correct-this-binding-in-settimeout. –