【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part34 Dartの特徴
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part34 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part33 Dartの特徴
もう少しasync/await
の学習を行います。
Dartの特徴
async/await
await for
というステートメントあるそうです。ストリーム処理を行うときに使用するそうです。
Streamの処理ではlisten
を使用して処理していました。
await for
というのはもう一つの処理方式ということでしょうかね。
こちらに説明とサンプルコードがありました。
サンプルコードを使用させていただきました。
import 'dart:math';
Stream chinchiroAsync() async* {
final random = Random();
for (var i = 0; i < 3; ++i) {
// 1秒待機
await Future.delayed(Duration(seconds: 1));
// ランダムな数値に1を足して返却
// ここでこの非同期処理は一時停止ですかね?
// 要求あれば再開しforの先頭に戻って処理する~という流れだった気がします。
yield random.nextInt(6) + 1;
}
}
void main() async {
final stream = chinchiroAsync();
await for(int i in stream){
print(i);
}
}
以下のような動作になります。
最後に
Stream処理のawait for
はlisten
の代替となるのでしょうか?
listen
よりもこちらの方が少し理解しやすいのでこちらが定石だと助かります。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません