在尝试从特定组件导航到其他路线时,出现一个奇怪的错误。如果我导航到其他组件的不同路线,则不会看到此错误。 我附上错误的屏幕截图
我已经搜索了这个问题,似乎是RxJS或空路由的问题。但是我在空路由中添加了 pathMatch:'full',而我的RxJS版本是 6.3.3 。任何想法或任何解决此问题的人都可以提供很大帮助。
答案 0 :(得分:3)
EmptyError
管道会抛出 first
。
您的堆栈跟踪显示TextblockComponent
在其takeUntil
函数中触发了ngOnDestroy
管道,该函数通常会关闭Observable。可以假定这将关闭具有first
管道的Observable并因此导致EmptyError
。
可以使用take(1)
代替first()
来避免错误。
答案 1 :(得分:0)
这是关于此类错误的最流行的问题(也是自“pathMatch:'full'”错误现已修复以来更现代的问题之一),所以我想提供那些无法解决的问题使用 ggradnig 的回复找到解决方案(尽管一般来说很重要)。
看看你的拦截器
如果您的 HTTP 请求在发送之前被拦截器拦截,并且该拦截器由于某种原因失败,您的请求将被卡住。
举个我最近 2 天调试的例子:如果你使用 JWT 身份验证,很可能你在某处有一个拦截器将你的访问令牌附加到 AJAX 请求,所以你不必手动执行所有这些时间。如果这个拦截器截取了您的请求,而您没有编写任何逻辑代码,如果他们没有找到附加到请求的令牌,您可能会发现自己遇到此错误。