この記事ではRxJSの『timerオペレータ』について、
- timerオペレータとは
- timerオペレータのプログラム例
などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。
timerオペレータとは
timerオペレータは、指定の時間が経過してから、または指定の日時にデータを流すオペレータです。返り値はObservableになります。timer
オペレータは、呼び出し方によっては、指定した時間間隔でデータを流すこともできます。
以下にtimer
オペレータを用いたプログラム例を示しています。
import { timer } from 'rxjs';
const numbers = timer(3000);
numbers.subscribe((value) => console.log(value));
// ログ
// 0(←3秒後に0が出力)
timer(3000)
は3秒後に0を流すObservableです。
timerオペレータの構文
timer(due: number | Date, scheduler?: SchedulerLike): Observable<number>
引数due
は、初めて値を発行するまでの待ち時間をミリ秒単位で指定するか、または特定の日付/時間を指定します。指定した時間が来ると、timer
オペレータは0を発行し、その後完了します。
timerオペレータのプログラム例(指定した時間間隔でデータを流す)
以下にtimer
オペレータを用いたプログラム例を示しています。
import { timer } from 'rxjs';
const numbers = timer(3000, 1000);
numbers.subscribe((x) => console.log(x));
// ログ
// 3秒後に0を出力、その後1秒ごとに1, 2, 3, ...と出力
timer(3000, 1000)
のように記述すると、3秒後に0を出力し、その後1秒ごとに「1→2→3→4→・・・」というデータを流すObservableになります。
timerオペレータの構文(指定した時間間隔でデータを流す場合)
timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable<number>
引数startDue
は、初めて値を発行するまでの待ち時間をミリ秒単位で指定するか、または特定の日付/時間を指定します。引数intervalDuration
はその後の発行の間隔を指定します。この形式では、timer
オペレータは0から始まり、1つずつ無限に値を発行し続けます。
【補足】 timerオペレータの引数schedulerについて
timer
オペレータの引数scheduler
では、特定のアクション(たとえばObservableの発行)をいつどのように実行するかを決めます。デフォルトはasyncScheduler
です。その他にもasapScheduler
などがあります。asyncScheduler
は非同期でタスクを実行し、asapScheduler
は、可能な限り早くタスクを実行します。
特別な要件がない限り、引数scheduler
は通常省略され、デフォルトのasyncScheduler
が使用されます。
本記事のまとめ
この記事ではRxJSの『timerオペレータ』について、以下の内容を説明しました。
- timerオペレータとは
- timerオペレータのプログラム例
お読み頂きありがとうございました。