Angular 5。
クリックしてから経過した時間を知るために、「再生」ボタンが押されたときにタイミングを開始する方法を知りたい。
また、タイマーを停止してから前の同じ時間に続行できるかどうかも知りたいです。
Pardeep Jainの回答で私の質問をようやく解決しました。それはまさに私が探していたものではありませんでしたが。私はカウントダウンが欲しくなかった、私は期間を数えたかった。最後に使用したコードは次のとおりです。
time: number = 0;
interval;
startTimer() {
this.play = true;
this.interval = setInterval(() => {
this.time++;
},1000)
}
pauseTimer() {
this.play = false;
clearInterval(this.interval);
}
単にsetInterval
を使用して、Angularでこのようなタイマーを作成し、タイマーにこのコードを使用することができます-
timeLeft: number = 60;
interval;
startTimer() {
this.interval = setInterval(() => {
if(this.timeLeft > 0) {
this.timeLeft--;
} else {
this.timeLeft = 60;
}
},1000)
}
pauseTimer() {
clearInterval(this.interval);
}
<button (click)='startTimer()'>Start Timer</button>
<button (click)='pauseTimer()'>Pause</button>
<p>{{timeLeft}} Seconds Left....</p>
import { timer } from 'rxjs';
oberserableTimer() {
const source = timer(1000, 2000);
const abc = source.subscribe(val => {
console.log(val, '-');
this.subscribeTimer = this.timeLeft - val;
});
}
<p (click)="oberserableTimer()">Start Observable timer</p> {{subscribeTimer}}
詳細については こちらをご覧ください
これはあなたが探しているものにとってはやり過ぎかもしれませんが、これを行うために使用できるmarky
というnpmパッケージがあります。タイマーを開始および停止するだけでなく、いくつかの追加機能を提供します。 npm
経由でインストールし、使用したい場所に依存関係をインポートするだけです。 npm
パッケージへのリンクは次のとおりです。 https://www.npmjs.com/package/marky
Npm経由でインストールした後の使用例は次のとおりです。
import * as _M from 'marky';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss']
})
export class TestComponent implements OnInit {
Marky = _M;
}
constructor() {}
ngOnInit() {}
startTimer(key: string) {
this.Marky.mark(key);
}
stopTimer(key: string) {
this.Marky.stop(key);
}
key
は、特定の時間の測定値を識別するために確立している単なる文字列です。作成したキーを使用して、戻ってタイマーの統計情報を参照できる複数のメジャーを持つことができます。