parseAsync method

  1. @override
void parseAsync(
  1. State<ChunkedData<I>> state,
  2. ResultCallback<O> onDone
)
override

Implementation

@override
void parseAsync(State<ChunkedData<I>> state, ResultCallback<O> onDone) {
  final pos = state.pos;
  void parse() {
    p.parseAsync(state, (result) {
      if (result == null) {
        onDone(null);
      } else {
        final value = result.value;
        final v = f(value);
        if (v) {
          onDone(Result(value));
        } else {
          final error = h(pos, state.pos, value);
          state.pos = pos;
          state.failAt<Object?>(pos, error);
          onDone(null);
        }
      }
    });
  }

  parse();
}