2017-08-14 5 views
0

この問題は、私のapiを呼び出す前に自分のトークンが返されるまで待たなければならない時があります。 authState.tokenはLoadMyStuffFromApiをディスパッチする前にnull以外のものです。ngrx:LoggedInActionが発生したときにのみURLに移動

は、私は2つのリゾルバを持っている:

LoginResolver:

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} 
} 

持って、私はWAIするための方法がありますloadCaseリゾルバを実行する前にログインリゾルバが完了するまで、またはこれを別の方法で実行しますか?

答えて

1

このストアでは、loggedIn = falseというデフォルトの値変数を設定できます。 API呼び出しを行っている場所では、loggedInの変更をサブスクライブして、loggedInがtrueになったときにのみ実行できます。

+0

ありがとうございます!これは私がやったことです:) – Magnusev

関連する問題