flatMap<B extends Object> method

Effect<B, E> flatMap<B extends Object>(
  1. Effect<B, E> next(
    1. A value
    )
)

Sequence another Effect that uses this Effect's successful value.

Implementation

Effect<B, E> flatMap<B extends Object>(Effect<B, E> Function(A value) next) {
  return Effect<B, E>._((context) async {
    final result = await _run(context);

    return result.fold<Future<ResultDart<B, E>>>(
      (value) => next(value)._run(context),
      (error) async => Failure<B, E>(error),
    );
  }, _localBindings);
}