flutter pushAndRemoveUntil 的一次小疑惑

刚开始我是这么写的,本意是想等这个操作完成之后 再继续后续的操作。但是发现后续的操作一直不执行,也没有报错。

js 复制代码
await Navigator.of(globalKey.currentState!.context).pushAndRemoveUntil

这是pushAndRemoveUntil的源码,可以看到返回的是newRoute.popped,看字面意思就是等待的是我们push的新route的pop操作。所以也能理解上面的await一直没有返回,一直没有往后继续执行的原因。

js 复制代码
@optionalTypeArgs
Future<T?> pushAndRemoveUntil<T extends Object?>(Route<T> newRoute, RoutePredicate predicate) {
  assert(newRoute._navigator == null);
  assert(newRoute.overlayEntries.isEmpty);
  _pushEntryAndRemoveUntil(
    _RouteEntry(newRoute, pageBased: false, initialState: _RouteLifecycle.push),
    predicate,
  );
  return newRoute.popped;
}

所以这里没必要await push and remove 是同步操作。

相关推荐
Jolyne_14 小时前
flutter学习(一)环境搭建及基础速通
flutter
MonkeyKing715514 小时前
Flutter状态管理实战:全局、局部、页面状态拆分指南
前端·flutter
MonkeyKing715516 小时前
Flutter异步状态统一处理实战:告别混乱,优雅管理请求与加载
flutter
MonkeyKing715516 小时前
Flutter项目结构与模块化、组件化、插件化
flutter
UnicornDev19 小时前
【Flutter x HarmonyOS 6】魔方计时APP——计时逻辑实现
flutter·华为·harmonyos·鸿蒙·鸿蒙系统
用户游民19 小时前
Flutter Widget、Element、RenderObject 关联以及实现原理
flutter
用户954215733348519 小时前
彻底告别 `.w/.h/.sp`!Flutter 屏幕适配的底层玩法,一次接入全局生效
flutter
liulian091619 小时前
Flutter for OpenHarmony 跨平台开发:密码生成器功能实战指南
flutter
可有道理19 小时前
Flutter 抽象类、接口与mixin
flutter
MonkeyKing715520 小时前
Flutter路由高级管理实战:守卫、深链、多栈与Tab路由全解析
flutter