popUntil<E> method

void popUntil<E>(
  1. bool predicate(
    1. RouteQuery query
    ), [
  2. E? result
])

Keep pop until the predicate condition is true.

The result of pop is returned by result.

predicateの条件がtrueになるまでpopし続けます。

popした結果をresultで返します。

Implementation

void popUntil<E>(bool Function(RouteQuery query) predicate, [E? result]) {
  var index = _pageStack.length - 1;
  while (index >= 0 && !predicate(_pageStack[index].query)) {
    final container = _pageStack.removeAt(index);
    container.completer.complete(result);
    index -= 1;
  }
  _routerDelegate.notifyListeners();
}