Skip to content

Nested asynchronous loops don't work with groupBy #726

@feinstein

Description

@feinstein

This code works just fine:

// prints:
// 0
// Instance of '_MultiStream<int>'
// 0
// 1
// Instance of '_MultiStream<int>'
// 0
// 1
// 2
// Instance of '_MultiStream<int>'
// 0
// 1
// 2
// 3
// flutter: Instance of '_MultiStream<int>'
await for (final item in Stream.fromIterable(List.generate(4, (index) => Stream.fromIterable(List.generate(index + 1, (index) => index))))) {
  await for (final item2 in item) {
    print(item2);
  }
  print(item);
}

Now if I use a groupBy it only runs once:

// prints:
// 0
await for (final item in Stream.fromIterable(List.generate(30, (index) => index)).groupBy((value) => value % 3)) {
    await for (final item2 in item) {
      print(item2);
    }
    print(item);
  }

If I remove the second await for I can see the stream emits 3 GroupedStream as expected.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions