У меня есть canActivate, где я получаю 2 состояния
canActivate(): Observable<boolean> {
this.store.dispatch(new fromProjectActions.SelectProjectAction(43))
combineLatest(
this.store.pipe(
select(fromProjectSelectors.getSelectedProject)
),
this.store.pipe(select(fromUserSelectors.getUser))
).pipe(
map(([project, user]) => {
// Logic here
// return true if project.creatorId === user.id
})
);
}
Как я могу сделать это, зная, что getUser
уже доступно в состоянии, но getSelectedProject
необходимо отправить егодействие до
РЕДАКТИРОВАТЬ:
canActivate(): Observable<boolean> {
this.store.dispatch(new fromProjectActions.SelectProjectAction(43));
combineLatest(
this.store.pipe(
select(fromProjectSelectors.getSelectedProject)
),
this.store.pipe(select(fromUserSelectors.getUser))
).subscribe(([project, user]) => {
// here the first time `project` is `null`, have to wait the
second time
if (project) {
if (project.id === user.id) {
return of(true);
} else {
return of(false);
}
}
});
}