RasMason
RasMason

Reputation: 2212

NGRX selector in resolver

In my resolver I have:

export class ComicMainResolver implements Resolve<any> {
  store = new Observable<any>();

  resolve(): Observable<any> {
    return this.store.pipe(select(getItems(CategoryType.Comics, false, 'results')))
      .pipe(
        filter((comic: any) => {
          console.log(comic);
          return comic !== undefined;
        }), first());
  }
}

But it does not resolve, won't even log the var in the filter

Upvotes: 0

Views: 474

Answers (1)

Yair Cohen
Yair Cohen

Reputation: 2258

The problem is that store is an empty Observable, instead, you need to inject your store and use it like this:

@Injectable({
  providedIn: 'root'
})
export class ComicMainResolver implements Resolve<any> {
  constructor(private store: Store<State>) {}

  resolve(): Observable<any> {
    return this.store.pipe(select(getItems(CategoryType.Comics, false, 'results')))
      .pipe(
        filter((comic: any) => {
          console.log(comic);
          return comic !== undefined;
        }), first());
  }
}

Upvotes: 1

Related Questions