私はAngular(6)を初めて使用します。setInterval
コンポーネントで関数を使用しています。動作していますが、別のルートに移動すると、setInterval
実行を続けます。理由を特定するのを手伝ってください。
//Calling it in ngOnit()
autosavedraftsolution() {
setInterval(() => {
console.log(this.draftSolutionForm);
if (this.solutionTitleValid) {
this.savedraftsolution();
}
}, this.autoSaveInterval);
}
//savedraftsolution()
savedraftsolution() {
console.log("saving..");
this.connectService.saveDraftSolution({
Title: this.draftSolutionForm.get('Title').value,
Product: this.draftSolutionForm.get('Product').value
} as Draftsolution).subscribe(draftsol => {
console.log("saved");
});
}
コンソールに「saving ..」と「saved」のメッセージが表示され続けます。
clearInterval
コンポーネントがアンマウントされたときに停止するには、を呼び出す必要があります。
this.intervalId = setInterval(...);
コンポーネントがアンマウントされているとき:
ngOnDestroy() {
clearInterval(this.intervalId);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加