Dart Streamクラスのvalueコンストラクタについてメモ書き。
valueはStreamイベントを1つ発行して終了するコンストラクタ。
関数の戻り値などでStream型のイベントを返さなければいけない時等に使える便利なコンストラクタだ。
valueの引数で渡した値がイベントとして発行される。
コーデシングで動作確認。
以下test1()はStream<String>を返す関数。関数の引数にbool型の値を渡し、trueの場合は処理Aの戻り値を返し、falseの場合は処理Bの値を返している。処理Aの戻り値がStream<String>型のため、test1()の戻り値の型をStream<String>にしている。処理Bではvalueを使い同じ型で返している。
void main() {
Stream<String> test1(bool data) {
if (data == true) {
// 処理A
final stream = Stream.fromIterable(["true1", "true2"]);
return stream;
} else {
// 処理B
return Stream.value("end");
}
}
test1(true).listen((event) {
print(event);
});
}
test1(true)の実行結果。
true1
true2
test1(false)の実行結果。
end
コメント