dispose method
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(),
]);
}