executeInitialized<R> method

FutureOr<R> executeInitialized<R>(
  1. ExecuteInitializedCallback<R> callback, {
  2. Initializable? parent,
})

Executes the callback ensuring that this instance was initialized.

Throws an InitializationError (with the InitializationError.cause) if the initialization fails.

In a cycle (InitializationResult.cyclic: this instance is waiting for the caller), the callback runs while this instance is still initializing.

Implementation

FutureOr<R> executeInitialized<R>(
  ExecuteInitializedCallback<R> callback, {
  Initializable? parent,
}) {
  if (isInitialized) {
    return callback();
  }

  var result = ensureInitialized(parent: parent);

  return _then(
    result,
    (InitializationResult result) => _executeWithResult(result, callback),
  );
}