@override Future<void> dispose() async { if (isDisposed) { return; } _isDisposed = true; await Future.wait( _disposers.map( (fn) async => await fn(), ), ); }