Resolver does not resolve if another data stream is added

后端 未结 2 357
孤街浪徒
孤街浪徒 2021-01-22 17:07

I am trying to use a resolver in order to retrieve data depending on the given parameters the route holds.

Unfortunately, the moment I add another data stream that my da

2条回答
  •  萌比男神i
    2021-01-22 17:47

    The answer to my problem is rather simple and had nothing to do with subscribing to the resolved observables, as I already did that within the (target)component.

    In order for a resolver to finish, all the streams it depends on need to complete. If you happen to use a hot observable it is required to use another operator like take so that the stream completes at that location.

    So, all the code remains the same, except that I changed the resolver to:

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {
      return this._secondService
        .observable()
        .pipe(
          take(1),
          switchMap((bar) => this._myService.get(bar)),
      );
    }
    

    @eduPeeth: Thank you for your answer/suggestions, unfortunately, it was a far more minor issue.

提交回复
热议问题