如何解决 Angular 4 路由器中的更改

How to resolve chaning in Router of Angular4

我正在尝试链接路由器解析器

这是我的路由器选项。

  { path: '',
    component: AdminComponent,
    resolve: [
      SessionResolve,
      LocaleResolve
    ]
  }

我想调用 SessionService(SessionResolve) 然后调用 LocaleService(LocaleResolve) 用会话数据的 lang 值

但是,上面的代码调用是同时解析的

我认为解决代码更改 here 但是我不知道,因为我以前没有用过Angular4。

有什么方法可以将 resolve 用作链宁?还是我应该一次解决所有的工作?

Resolve 是 Angular 路由器支持的守卫之一。如果你有不止一名警卫,他们将以没有特定顺序的异步方式执行。

如果您需要维护订单,请创建另一个实现 Resolve 接口的 class(例如 SessionAndLocaleResolve),并在其中 class 从 SessionResolve 执行函数,然后从 LocalResolve 执行函数。 这样你的路由将有一个解析器 SessionAndLocaleResolve 并且你可以控制 "sub resolvers".

的执行顺序