错误Angular 7中的EmptyEmptyImpl {消息:“无元素顺序”,名称:“ EmptyError”}

时间:2019-03-27 14:51:44

标签: angular rxjs angular-routing angular7 rxjs6

在尝试从特定组件导航到其他路线时,出现一个奇怪的错误。如果我导航到其他组件的不同路线,则不会看到此错误。 我附上错误的屏幕截图 enter image description here

我已经搜索了这个问题,似乎是RxJS或空路由的问题。但是我在空路由中添加了 pathMatch:'full',而我的RxJS版本是 6.3.3 。任何想法或任何解决此问题的人都可以提供很大帮助。

2 个答案:

答案 0 :(得分:3)

如果可观察的源在发出任何通知之前已关闭,则EmptyError管道会抛出

first

您的堆栈跟踪显示TextblockComponent在其takeUntil函数中触发了ngOnDestroy管道,该函数通常会关闭Observable。可以假定这将关闭具有first管道的Observable并因此导致EmptyError

可以使用take(1)代替first()来避免错误。

答案 1 :(得分:0)

这是关于此类错误的最流行的问题(也是自“pathMatch:'full'”错误现已修复以来更现代的问题之一),所以我想提供那些无法解决的问题使用 ggradnig 的回复找到解决方案(尽管一般来说很重要)。

看看你的拦截器

如果您的 HTTP 请求在发送之前被拦截器拦截,并且该拦截器由于某种原因失败,您的请求将被卡住。

举个我最近 2 天调试的例子:如果你使用 JWT 身份验证,很可能你在某处有一个拦截器将你的访问令牌附加到 AJAX 请求,所以你不必手动执行所有这些时间。如果这个拦截器截取了您的请求,而您没有编写任何逻辑代码,如果他们没有找到附加到请求的令牌,您可能会发现自己遇到此错误。