Open1

Flutter/Dartで毎秒数字が生成されるStreamを作る

welchiwelchi

StreamBuilderなどで気軽にStreamを試したい場合、次のようにして、毎秒List<int>が更新されるStreamを作ることができる。

// [0],[0,1],[0,1,2]... のように、毎秒要素が一つずつ増える
 final numGenerator = (() async* {
    final nums = <int>[];
    for (var i = 0; i < 999; i++) {
      await Future<void>.delayed(
        const Duration(
          milliseconds: 1000,
        ),
      );
      nums.add(i);
      yield nums;
    }
  })();

...
StreamBuilder<List<int>>(
          stream: numGenerator,
          builder: (BuildContext context, AsyncSnapshot<List<int>> snapshot) {
...

StreamBuilder class - widgets library - Dart API