错误 EmptyErrorImpl {消息:"no elements in sequence",名称:"EmptyError"} Angular 7
ERROR EmptyErrorImpl {message: "no elements in sequence", name: "EmptyError"} in Angular 7
我在尝试从特定组件导航到不同路线时遇到奇怪的错误。如果我从其他组件导航到不同的路线,我不会看到此错误。
我附上错误的截图
我已经搜索过这个问题,似乎是 RxJS 或空路由的问题。但是我添加了 pathMatch:'full' 到空路由,我的 RxJS 版本是 6.3.3。任何想法或这里的任何人解决了同样的问题可能会有很大帮助。
EmptyError
由 first
管道抛出,如果源可观察对象在发出任何通知之前关闭。
您的堆栈跟踪显示 TextblockComponent
在其 ngOnDestroy
函数中触发了一个 takeUntil
管道,这通常会关闭一个 Observable。可以假设这会关闭具有 first
管道的 Observable,从而导致 EmptyError
.
错误可以通过使用 take(1)
而不是 first()
来避免。
这是关于此类错误的最常见问题(也是自“pathMatch: 'full'”错误现已修复以来较现代的问题之一),因此我想提供这些在 ggradnig 的回复中找不到解决方案(虽然一般来说都是钉子)。
看看你的拦截器
如果您的 HTTP 请求在发送之前被拦截器抢走,并且该拦截器由于某种原因失败,您的请求将被卡住。
举个我最近 2 天调试的例子:如果你使用 JWT 身份验证,你很可能在某个地方有一个拦截器将你的访问令牌附加到 AJAX 请求,所以你没有始终手动执行此操作。如果这个拦截器抢走了你的请求,而你没有为他们找不到附加到请求的令牌而编写任何逻辑,你可能会发现自己遇到这个错误。
我在尝试从特定组件导航到不同路线时遇到奇怪的错误。如果我从其他组件导航到不同的路线,我不会看到此错误。
我附上错误的截图
我已经搜索过这个问题,似乎是 RxJS 或空路由的问题。但是我添加了 pathMatch:'full' 到空路由,我的 RxJS 版本是 6.3.3。任何想法或这里的任何人解决了同样的问题可能会有很大帮助。
EmptyError
由 first
管道抛出,如果源可观察对象在发出任何通知之前关闭。
您的堆栈跟踪显示 TextblockComponent
在其 ngOnDestroy
函数中触发了一个 takeUntil
管道,这通常会关闭一个 Observable。可以假设这会关闭具有 first
管道的 Observable,从而导致 EmptyError
.
错误可以通过使用 take(1)
而不是 first()
来避免。
这是关于此类错误的最常见问题(也是自“pathMatch: 'full'”错误现已修复以来较现代的问题之一),因此我想提供这些在 ggradnig 的回复中找不到解决方案(虽然一般来说都是钉子)。
看看你的拦截器
如果您的 HTTP 请求在发送之前被拦截器抢走,并且该拦截器由于某种原因失败,您的请求将被卡住。
举个我最近 2 天调试的例子:如果你使用 JWT 身份验证,你很可能在某个地方有一个拦截器将你的访问令牌附加到 AJAX 请求,所以你没有始终手动执行此操作。如果这个拦截器抢走了你的请求,而你没有为他们找不到附加到请求的令牌而编写任何逻辑,你可能会发现自己遇到这个错误。