setTimeout
の使用を必要とする機能をAngular2に実装しています。
私のコード:
public ngAfterViewInit(): void {
this.authenticate_loop();
}
private authenticate_loop() {
setTimeout (() => {
console.log("Hello from setTimeout");
}, 500)
}
setTimeout
はngAfterViewInit
によって開始されますが、ループは1回だけ実行されます。 「Hello fromsetTimeout」は一度だけ出力されます。
質問: setTimeoutが機能するようにコードを変更するにはどうすればよいですか?
private authenticate_loop() {
setInterval (() => {
console.log("Hello from setInterval");
}, 500)
}
setTimeout
は、別のsetTimeout
を作成しない限り、一度だけ実行されます。
編集:したがって、異なるangularバージョン:
Angular2では、$ timeout/$ intervalを使用する必要はありません。したがって、ここでの質問ではsetIntervalが正しい解決策です。
元の応答(Angular1を対象とする)に関心のある方は、以下をお読みください。
Angular.jsアプリケーション内で $ interval を使用します。
そして、angular.jsアプリケーション内の他の場所でsetTimeoutを使用する場合は、 $ timeout サービスを使用することをお勧めします。
$ timeoutおよび$ intervalには、スコープを維持するという利点がありますsetTimeout/setIntervalでは更新されません。