在使用全局HTTP拦截器作为Angular中的错误处理程序时,如何确定哪个组件/服务引发了错误?

时间:2019-06-28 08:55:39

标签: angular frontend angular-http-interceptors

我正在使用HTTPInterceptor处理Angular应用程序中发生的任何错误。一旦发生错误,此拦截器将引发并处理该错误。但是,一旦向拦截器抛出了错误,我想确定是哪个组件或服务引发了该错误。

我期望以下内容:如果main.service.ts是发生错误的服务,我想在我的HTTPInterceptor类中获得名称“ main.service.ts”。

1 个答案:

答案 0 :(得分:0)

我没有发现引发错误的组件,但是我们可以确定是哪种方法引发了错误。 我们需要一个名为“提取堆栈”的软件包

npm install extract-stack

然后,按以下方式获取函数名称。 Angular即使在生产模式下也不会更改函数名称,因此我们可以捕获发生错误的方法,如-:

var function_name = extractStack.lines(errors)[0].split('.')[1].split(' ')[0];