Как увеличить число с помощью setinterval в машинописи - PullRequest
0 голосов
/ 23 февраля 2020

Попытка увеличить число до 10 после достижения 10 снова запустится так же, как это: http://jsfiddle.net/dRMrL/
Я пробовал набирать текст, но не работал. Как это сделать?

count:number=0;
ngOnInit(){ 
  setInterval(this.myCount,500); 
}

myCount() {

  if (this.count > 10) {
          this.count = 0;
    }
   console.log("Count form 0 to 10"+this.count);  
    this.count ++; 

}

Демо: https://stackblitz.com/edit/angular-kma3tn?file=src / app / app.component.ts

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Вы можете взять замыкание по номеру counter и max.

Внутри приращения функции counter, взять выход и отрегулировать counter со значением max.

const count = (max, counter = 0) => () => {
        console.log(counter);
        counter = counter === max ? 0 : counter + 1;
    };

setInterval(count(10), 500);

Без замыкания, но с глобальной переменной.

var counter = 0;

setInterval(() => {
    console.log(counter);
    counter = counter === 10 ? 0 : counter + 1;
}, 500);
0 голосов
/ 23 февраля 2020

Ключевое слово this в вашем myCount относится к функции setInterval. Вы можете решить эту проблему с помощью выражения функции стрелки в вашем setInterval и вызвать свой метод myCount внутри функции стрелки.

Таким образом, ключевое слово this внутри myCount относится к вашему компоненту.

ngOnInit(){ 
  setInterval(() => {
    this.myCount();
  }, 500);
}

myCount() {

  if (this.count > 10) {
        this.count = 0;
  }
  console.log("Count form 0 to 10 - " + this.count);  
  this.count ++; 

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...