Calls complete only if ![isCompleted] and returns true, otherwise just returns false.
true
false
bool completeSafe([FutureOr<T>? value]) { if (!isCompleted) { complete(value); return true; } return false; }