disposebag 1.1.0 copy "disposebag: ^1.1.0" to clipboard
disposebag: ^1.1.0 copied to clipboard

outdated

A package to help disposing Streams and closing Sinks easily.

example/disposebag_example.dart

import 'package:disposebag/disposebag.dart';
import 'dart:async';

List<dynamic> get _disposables {
  final controllers = <StreamController>[
    StreamController<int>()..add(1)..add(2),
    StreamController<int>(sync: true)..add(3)..add(4),
    StreamController<int>.broadcast()..add(5)..add(6),
    StreamController<String>.broadcast(sync: true)..add('7')..add('8'),
  ];
  final subscriptions = <StreamSubscription>[
    Stream.periodic(const Duration(milliseconds: 100), (i) => i)
        .listen((data) => print('[1] $data')),
    Stream.periodic(const Duration(milliseconds: 10), (i) => i)
        .listen((data) => print('[2] $data')),
    for (int i = 0; i < controllers.length; i++)
      controllers[i].stream.listen((data) => print('[${i + 3}] $data')),
  ];
  return [...controllers, ...subscriptions];
}

void main() async {
  final bag = DisposeBag(_disposables);
  await Future.delayed(const Duration(seconds: 2));
  await bag.dispose();

  await Future.delayed(const Duration(seconds: 2));
  print("Bag disposed. It's all good");
}
19
likes
0
pub points
85%
popularity

Publisher

unverified uploader

A package to help disposing Streams and closing Sinks easily.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

collection, meta

More

Packages that depend on disposebag