Наблюдение за избыточностью не может отловить ошибку от произведенного действия, ошибка останавливает поток действия - PullRequest
0 голосов
/ 06 ноября 2018

Если ошибка js возникает в результате испущенного действия из эпопеи, наблюдаемой в редуксе, тогда все эпики не могут слушать новые действия. Это довольно неприятно, поскольку на внешнем интерфейсе все равно выглядит, как будто приложение работает, но в фоновом режиме ничего не сохраняется.

Я попытался отловить ошибку в моем эпосе, но по какой-то причине он не улавливает ошибки, вызванные вызванным действием (см. Пример здесь: https://stackblitz.com/edit/redux-observable-playground-qtughj?file=ping-pong.js)

Я думал, что обновление до версии 1.0.0, доступной для понижения, может решить эту проблему, но, к сожалению, она остается.

Есть ли способ обнаружить ошибки, вызванные наблюдаемым редуксом испущенным действием?

Эта проблема отличается от этого вопроса , так как ошибка возникает в редукторе, который возникает после того, как эпопея испустила свое выходное избыточное действие, поэтому перехват ее с помощью .error в цепочке наблюдаемых не делает ' t работает (см. пример выше для демонстрации).

Спасибо!

1 Ответ

0 голосов
/ 15 ноября 2018

После обсуждения этой проблемы в наблюдаемом с помощью редукции Github repo наиболее безопасным решением, по-видимому, является создание некоторого пользовательского промежуточного программного обеспечения Redux, предотвращающего всплытие ошибки вплоть до корневого эпоса, например

const store = createStore(rootReducer,
  applyMiddleware(epicMiddleware, store => next => action => {
    try {
      next(action);
    } catch (e) {
      setTimeout(() => {
        throw e;
      });
    }
  })
);
...