2017-01-03 67 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