Skip to content

throttled stream ignores the close command #709

@aurokk

Description

@aurokk

Hey!
I was playing around with rxdart and faced a problem.
When throttleTime is used then the stream ignores the close command.
Is that by design or I'm doing sth wrong?

I use the latest versions of rxdart (0.27.7)/flutter (3.3.10) :-)

// WORKS

main() async {
  final c = StreamController<String>();
  Future.delayed(Duration(seconds: 5)).then((f) => c.close());
  final s = c.stream;
  print("start");
  await for (var _ in s) {
    print("loop");
  }
  print("end");
}

// WORKS

main() async {
  final c = StreamController<String>();
  Future.delayed(Duration(seconds: 5)).then((f) => c.close());
  final s = c.stream.debounceTime(Duration(seconds: 1));
  print("start");
  await for (var _ in s) {
    print("loop");
  }
  print("end");
}

// DOESN'T WORK, NEVER REACHES THE END

main() async {
  final c = StreamController<String>();
  Future.delayed(Duration(seconds: 5)).then((f) => c.close());
  final s = c.stream.throttleTime(Duration(seconds: 1));
  print("start");
  await for (var _ in s) {
    print("loop");
  }
  print("end");
}

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingunder evaluationWe are determining the bast way to approach this issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions