Dart Streamクラスのperiodicコンストラクタについてメモ書き。
periodicは指定した周期でイベントを発行するコンストラクタ。
第1引数はDurationクラスで実行間隔を指定する。マイナスは指定できない。
第2引数は実行する処理を記述する。
つまり、第1引数で指定した間隔で第2引数の処理が実行される。
第2引数はint型の変数を引数として受け取る。変数は0からスタートし、周期を重ねる毎に1づつ増加していく。
Stream.take()メソッドで実行回数を指定できる。
コーディングで動作を確認。
void main() {
final stream = Stream<String>.periodic(const Duration(seconds: 1), (i) {
int r = i + i;
return "$i=TEST$r";
}).take(5);
stream.listen(
(event) {
print(event);
},
onDone: () => print("完了"),
);
}
実行結果。
間隔は「Duration(seconds: 1)」、回数は「take(5)」を指定しているので、1秒間隔で5回処理が実行される。
0=TEST0
1=TEST2
2=TEST4
3=TEST6
4=TEST8
完了
コメント