【发布时间】:2021-01-04 11:44:52
【问题描述】:
我有一个 Ionic/angular 项目,我暂停了一段时间。我继续处理它,但控制台出现错误。用户效果是 10-15 秒没有显示任何内容,然后我的 google 已加载,但我没有看到任何功能。
core.js:4197 ERROR RangeError: Maximum call stack size exceeded
at MapSubscriber._error (Subscriber.js:75)
at MapSubscriber.error (Subscriber.js:55)
at MergeMapSubscriber.notifyError (OuterSubscriber.js:7)
at InnerSubscriber._error (InnerSubscriber.js:14)
at InnerSubscriber.error (Subscriber.js:55)
at CatchSubscriber._error (Subscriber.js:75)
at CatchSubscriber.error (Subscriber.js:55)
at CatchSubscriber.error (catchError.js:32)
at MergeMapSubscriber.notifyError (OuterSubscriber.js:7)
at InnerSubscriber._error (InnerSubscriber.js:14)
我搜索了一下,我已经从 angular 10 更新到 angular 11,更新了所有库,在 stackoverflow 上找到了很多答案,包括这个 Angular 7 error RangeError: Maximum call stack size exceeded
但我不知道哪里会导致问题。
我试图在我所在页面的ngOnInit/constructor 上评论所有内容,但没有成功。
我怎样才能找到此类错误的根本原因?我真的迷路了,我不知道该怎么办,这只是让我的应用程序冻结 10-15 秒然后崩溃。 p>
在这之后我有一个 firebase 超时,但我想这是因为 angular 忙于处理这个调用堆栈问题。
【问题讨论】:
-
这意味着你的代码中某处存在无限循环。如果它发生在任何地方,它很可能来自服务。
-
@Ploppy 我还没有任何服务,我正在使用 NGXS,连接到 Firebase,所以目前我只需要调度操作并连接结果。知道我可以激活或追踪某些东西以查看它的来源吗?为什么我在调用堆栈中看不到任何内容?
-
典型的这种情况发生在,在 ReactiveForms 中,一个控件依赖于另一个控件 - 或禁用了一个控件 - 并且你在没有 {emitEvent:false} 的情况下创建了一个 setValue - 这就像你的问题与一个 swithMap 相关可观察到,但我不知道如何检查问题出在哪里
-
@Eliseo我刚刚评论了我的解决方案中的每个 switchMap,再次运行了 ionic serve,但我仍然遇到了问题:'(。另外,我只有一个表单(登录表单)但我已经登录了并且不显示任何形式)
标签: angular debugging ionic-framework