2017-01-03 2 views
1

У меня есть мой loggerService, и мне нужно поймать все ошибки в редукторе и отправить его через мою службу на сервер.Как обрабатывать ошибки внутри редукторов?

Как я могу это сделать? Я знаю, что редуктор должен быть чистой функцией, но все же есть идеи?

мне нужно добавить в reduser попытке поймать

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

Или, может быть, бросить что-то в редукторе и поймать его в каком-то месте ...

Большое спасибо

ответ

3

Короткий ответ: Вы этого не сделаете.

Почему? - Редуктор несет ответственность только за обновление магазина, он должен не выполнять любые бизнес-логику или проверять данные - любые данные, поступающие в хранилище, должны быть уже действительными и просто сохраняться/обновляться/удаляться из магазина.

Возможное решение: Вы должны делать такого рода операций, либо в effect или в какой-то службы, который отвечает за извлечение/создание данных.

+0

Мне не нужно добавлять какие-либо бизнес-логику или проверять данные. я просто хочу добавить try catch и если есть какая-либо ошибка для его регистрации ... просто для вызова logger.service.error (ошибка) – Yelenka

+0

Тогда вам придется делать это за пределами углового - кроме того, должен быть написан редуктор таким образом, что ошибок нет - какая ошибка возникает в вашем редукторе? – olsn

+0

Например, я получил ответ от сервера и по некоторым причинам в ответ пропустил свойства объекта. В то время как произошла ошибка отображения внутри ошибки редуктора, такие ошибки, которые я хочу обрабатывать и отправлять в журнал. – Yelenka

Смежные вопросы