cond method

Resolvable<T> cond(
  1. bool test(
    1. T value
    )
)

Returns the value of the Pod when the test returns true.

Implementation

Resolvable<T> cond(bool Function(T value) test) {
  final finisher = SafeCompleter<T>();
  final check = () {
    if (test(value)) {
      finisher.complete(value).end();
    }
  };
  check();
  if (finisher.isCompleted) {
    return Sync.okValue(value);
  } else {
    addStrongRefListener(strongRefListener: check);
    return finisher.resolvable().then((e) {
      removeListener(check);
      return e;
    });
  }
}