Обработка Future.failure в эффекте диода

В Диоде, как можно справиться с Future.failure в результате? В документе ( https://ochrons.github.io/diode/usage/Effects.html) ясно, как значение успеха из вызова Ajax используется для обновления модели с помощью Pot.Ready, но мне интересно, как это сделать? может поймать ошибку и обновить Pot.Failed вместо этого.

1 ответ

Решение

С простыми эффектами, вы должны преобразовать оба успешных Future и не удалось Future в подходящее действие, используя комбинацию map а также recover, Например:

val eff = Effect(Ajax.get(url)
  .map(r => NewMessages(r.responseText)))
  .recover { case e => MessageLoadingFailed(e.getMessage) }
)

Если вы используете AsyncAction (или производная PotAction) это обеспечивает вспомогательный метод effect который автоматически обрабатывает будущие ошибки и создает PotFailed государство.

Другие вопросы по тегам