如果在Resolver中以可观察到的Rxjs返回,则角路由器不会路由

时间:2018-07-10 08:04:23

标签: angular rxjs rxjs6

在我的有角度的应用程序中,我使用的解析器在方法resolve中返回可观察到的promise。 (正确(路由)或错误(路由失败))

在rxjs6版本中,函数“ Observable.fromPromise”被替换为“ from”,用于查找promise类型/实例并将作为一个对象处理。

为什么在rxjs6中我有“ from”的另一种行为,在下面的示例中,路由器将不会导航到“ home”,看来诺言不会发出/结束

如果我将其返回为Observable,它将无法路由到给定的链接,如果我在不评估返回值的情况下调用它,则它将正常工作。

示例:

import { from } from 'rxjs';

@Injectable()
export class ExampleResolver implements Resolve<boolean> {

  constructor(private router: Router) {
  }

  resolve(activatedRouteSnapshot: ActivatedRouteSnapshot): Observable<boolean> {
    return from(this.router.navigate(['/home'])); // not working
    // return Observable.fromPromise(this.router.navigate(['/home'])); works
  }
}

1 个答案:

答案 0 :(得分:0)

可以这样

return Observable.from(this.router.navigate('/home'));

或从

导入
import { from } from 'rxjs';