!!![AngularJS] timeoutでの非同期実行
AngularJSでのtimeoutを使用することで、指定のミリ秒後に動作する処理を行うことができます。
以下の例では「Push!」のボタンを押すと「Hello World!!」と表示され、3秒後に「Change!」と表示されます。
非同期処理のテスト
ボタンプッシュすると、3秒後に表示文字が変わります。
ボタンプッシュイベントに関しては「[[ボタンプッシュでの動作|angularJS_pushButton]]」を参照。
ボタンが押された場合はJavaScriptの「timerTest」が呼ばれますが、引数が「$scope, $timeout」となっています。
引数2に渡された「$timeout」で
$timeout(function() {
$scope.title = "Change!";
}, 3000);
とすると、timeoutの第一引数で指定した関数を第二引数のミリ秒後に実行します。
また、この記載後はすぐに次の命令に移行し、この呼び出しは非同期で実行されます。
これを利用し、
$timeout(function() {
// 何か重い処理.
}, 0);
のように第二引数で0を指定して実行することで、重い処理が即座に実行されますがプログラム自体は停止せずに次に移ることができます。
ですが、処理内容によっては若干動作がカクっとなるような感じもします(完全にバックで非同期実行されているわけではない?)。
----
{{lastmodified}}