簡體   English   中英

錯誤處理程序被調用兩次 angular http_interceptor

[英]error handler is getting called twice angular http_interceptor

在我的 angular 應用程序中,我有一個全局錯誤處理程序來處理所有錯誤。 另外,我有 http 攔截器,我試圖在錯誤發生時記錄錯誤。 但是,http 攔截器需要在捕獲錯誤時返回可觀察對象,現在我正在拋出錯誤,因此在內部觸發全局錯誤處理程序會使錯誤處理程序被調用兩次。 我可以從 http 攔截器中刪除錯誤處理程序,讓全局錯誤處理程序完成這項工作,但我不會獲得請求的相關 ID 來拼接整個請求。 我有兩個問題,當發生錯誤時,我們是否可以訪問請求標頭(以便我可以獲取關聯 ID),或者再次拋出錯誤,我還能做些什么嗎?

這是當前的攔截器。

catchError((error: HttpErrorResponse) => {
        this.logger.logError(
          error
          nextReq.headers.get('x-correlation-id') ?? ''
        );
        return throwError(error);

我在全局錯誤處理程序中添加了一個檢查,它只會在它不是 HTTPError 實例時調用記錄器。

if (error instanceof HttpErrorResponse) {
      // HTTP errors will be handled in interceptor itself.
    } else {
      this.logger.logException(error);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM