~Linux、MySQLからAJAXまでAngularJSの$timeoutサービスと$intervalサービスAngularJSの$timeoutサービスと$intervalサービスを使って登録した関数を遅延実行したり、繰返し実行する方法をまとめました。デモとコードサンプルはこちら。※目次をクリックすると目次の下部にコンテンツが表示されます。1.概要2.構文3.サンプルコード概要AngularJSの$timeoutサービスと$intervalサービスは、window.setInterval、window.setTimeout関数へのアクセスを提供するサービスです。どちらも指定した時間、登録した関数を遅延実行し、$timeoutは一度だけ実行するのに対し、$intervalは繰返し実行します。リターンされるのはプロミスオブジェクトで指定した時間に達すると登録した関数が実行されます。○delay遅延時間。○invokeApply関数fnが$scope.$applyブロック内で実行させるかどうか。デフォルトはtrue。○Pass関数fnに追加で渡す引数。○delay遅延時間。○count繰返し実行する回数。0の場合は無制限に繰り返す。○invokeApply関数fnが$scope.$applyブロック内で実行させるかどうか。デフォルトはtrue。○Pass関数fnに追加で渡す引数。2キャンセル$interval.cancel(promise)作成したインターバルオブジェクトは、自動で削除されないので(コントローラのスコープや該当要素が消失しても)、cancelメソッドを使って明示的に削除するようにします。サンプルコード1$timeoutサービス5秒後に登録した関数を実行し、ログを出力。2$intervalサービス・2秒サイクルで現在の時刻を表示。・該当HTML要素がDOMから削除され、”$destroy”イベントを検知するとcanselメソッドを実行し、intervalオブジェクトを削除する。intervalStop();});コンソールログを見ると、SubCtrl-Bに切替えると”$destroy”イベントを検知し、時刻表示が終了される事が確認出来ます。intervalStop()をコメントアウトして、cancelを行わないとSubCtrl-Bに切替えても時刻表示が継続されてしまいます。デモとコードサンプルはこちら。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。WordPressモバイルバージョンに。