RxDispose.dart 504 Bytes
/*
 * @author lsy
 * @date   2020/5/22
 **/

import 'dart:async';

class RxDispose {
  List<StreamSubscription> rx;

  RxDispose() {
    rx = List();
  }

  void addDispose(StreamSubscription streamSubscription) {
    rx.add(streamSubscription);
  }

  void dispose() {
    rx.forEach((element) {
      element.cancel();
    });
  }
}

extension StreamSubscriptionExt on StreamSubscription {
  StreamSubscription addToDispose(RxDispose rxDispose) {
    rxDispose.addDispose(this);
    return this;
  }
}