dispose method

Future<void> dispose()

When finish running timer, it need to dispose.

Implementation

Future<void> dispose() async {
  if (_elapsedTime.isClosed) {
    throw Exception(
      'This instance is already disposed. Please create timer object.',
    );
  }

  final timer = _timer;
  if (timer != null && timer.isActive) {
    timer.cancel();
  }

  await Future.wait<void>([
    _elapsedTime.close(),
    _rawTimeController.close(),
    _secondTimeController.close(),
    _minuteTimeController.close(),
    _recordsController.close(),
    _onStoppedController.close(),
    _onEndedController.close(),
  ]);
}