2017-01-03 70 views
1

我有我的loggerService,我需要捕獲reducer中的所有錯誤,並通過我的服務發送到服務器。如何處理reducer內部的錯誤?

我該怎麼辦?我知道減速器應該是一個純粹的功能,但仍然有什麼想法?

我需要在reduser嘗試捕捉添加

case actions.GAMES_LOADED{ 
     ...... 
     try{} 
     catch(err){ 
     this.loggerService.error(err); 
    } 
} 

或者,也許扔東西在減速和趕上它在一些地方...

非常感謝

回答

3

簡短的回答:你沒有。

爲什麼? - 減速器只負責更新商店,它應該而不是執行任何業務邏輯或驗證數據 - 到達商店的任何數據應該已經有效並且只是存儲/更新/從商店中刪除。

可能的解決方法:你應該做這些類型的操作要麼在effect或在某些服務是負責提取/創建數據。

+0

我不需要添加任何業務邏輯或驗證數據。我只是想添加try catch,如果有任何錯誤記錄它...只是調用logger.service.error(錯誤) – Yelenka

+0

然後,你必須做的角度外 - 除此之外,還應寫一個reducer以一種沒有錯誤的方式 - 減速器中引發了哪種錯誤? – olsn

+0

例如,我從服務器得到了一些響應,並且出於某些原因在響應對象上缺少屬性。雖然映射內部減速器錯誤發生,像我想處理併發送到日誌的錯誤。 – Yelenka