execute method

  1. @override
Stream<TState> execute(
  1. TState state
)
override

Implementation

@override
Stream<TState> execute(final TState state) async* {
  // 事前統合処理
  var copied = state;
  await for (final newState in buffer.merge(copied)) {
    copied = newState;
    await onPreMerge(copied);
    yield copied;
  }

  // 実際の処理
  await for (final newState in onExecute(copied)) {
    copied = newState;
    yield copied;
  }

  // 事後処理
  await for (final newState in buffer.merge(copied)) {
    copied = newState;
    await onPostMerge(copied);
    yield copied;
  }

  // 結合後最終処理
  await for (final newState in onPostExecute(copied)) {
    copied = newState;
    yield copied;
  }
}