Angular - 路由器导航无故取消

Angular - Router navigate canceled without reason

我有一个 angular (4.2.5) 应用程序,在我的代码中的某个时刻,我这样做了 :

this._appService
    .post('/createhero/save', opts)
    .subscribe(
        (resData: any) => 
        {   
            this._router.navigate(['home']);
        }
    );

navigate() 的路由器调用不起作用 - 没有任何反应。我启用了路由调试,这就是我得到的:

因此无故取消导航。在其他组件中,我有相同类型的 navigate() (一些也在可观察的回调中)效果很好。路线 /home 也适用。

我开始 运行 没主意了,我什至不知道为什么 navigate() 在这种情况下不起作用。

遇到了类似的问题,reason 真的没有帮助:)

我的问题是,我尝试导航的路线有一个订阅了 observable 的守卫,因为我已经给它赋值,所以 observable 的初始值为 false 并且因为路线被封锁,导航被取消。

会不会是其他守卫挡住了路线,canActivate() 根据你的查询结果给出了 true/false 但实际上并没有等待结果?

希望这对调试有所帮助:)