ngrx:仅在发生 LoggedInAction 时转到 url

ngrx: go to url only when LoggedInAction has happened

我有这个问题,我必须等到我的令牌返回到我的身份验证服务器,然后才能调用我的 api,我想知道是否有一个很好的方法来等到我的 authState.token 是其他东西在调度 LoadMyStuffFromApi 之前为 null。

我有两个解析器:

登录解析器:

public resolve(route: Activate...): Observable<Action> {
    this.store.dispatch(new LoginAction());
    return this.actions$.ofType(LOGGED_IN_ACTION).take(1);
}

MyDataLoadedResolver:

public resolve(route: Activate...): Observable<Action> {
    this.store.dispatch(new LoadDataAction());
    return this.actions$.ofType(DATA_LOADED_ACTION).take(1);
}

然后我的路由器有

{
    path: ':caseId',
    component: CaseViewerComponent,
    resolve: { login: LoginResolver, loadCase: MyDataLoadedResolver}
}

有没有办法让我等到登录解析器完成后再执行 loadCase 解析器,或者您会采用不同的方式吗?

在商店中,您可以设置名为 loggedIn = false 的默认值变量。在您进行 API 调用的地方,您可以订阅登录时的更改,并且只有 运行 一旦登录变为 true