ポイントは何ですか?
-
ストリームは、データの非同期シーケンスを提供します。
-
シーケンス:複数のデータの連続(のような意味)
-
データシーケンスには、ユーザーが生成したイベントとファイルから読み取られたデータが含まれます。
-
streamを進める方法として「await forを使う方法」と「StreamAPIのlisten()メソッドを使う方法」があります。
-
ストリームは、エラーに応答する方法を提供します。
-
ストリームには、シングルサブスクリプションとブロードキャストの2種類があります。
Dartの非同期プログラミングはFutureクラスとStreamクラスを使用します。
Futureは即時に完了しない(時間がかかる)計算(とその結果)を表現します。通常の関数が結果を返すのに対し、非同期関数はFutureを返します。
Futureは最終的には結果の値(あるいはエラー)を返します。futureは結果がいつ返ってきたかを教えてくれます。
streamは複数の複数の非同期イベントの連続を表現します。streamは非同期なイテラブルのようなものです。
要求したときに次のイベントを取得する代わりに、準備ができたときにイベントがあることをストリームが通知します。
Receiving stream events
streamを生成する方法はいくつもありますが、それについては他の記事で説明します。
streamを生成する方法に対して、streamを使用する(結果を受け取る)方法は一つです。
await for(asynchronous for loop)を使って、streamのイベントをイテレート(一つずつ順番に処理する)します。例えば、
Future<int> sumStream(Stream<int> stream) async {
var sum = 0
…