dispose method
Future<void>
dispose(
)
override
Implementation
@override
Future<void> dispose() {
return Future<void>.sync(() {
if (this.disposed != true) {
if (this._disposingFuture == null) {
if (this._initializingFuture != null) {
this._disposingFuture = this
._initializingFuture!
.then((_) => this.onDispose())
.whenComplete(() {
this._disposingFuture = null;
this._disposed = true;
});
return this._disposingFuture;
} else {
this._disposingFuture = Future<void>.value();
final onDisposeResult = this.onDispose();
if (onDisposeResult is Future<void>) {
this._disposingFuture = this
._disposingFuture!
.then((_) => onDisposeResult)
.whenComplete(() {
this._disposingFuture = null;
this._disposed = true;
});
} else {
this._disposingFuture = null;
this._disposed = true;
}
return this._disposingFuture;
}
} else {
return this._disposingFuture;
}
}
});
}