2017-01-19 9 views
1

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

ответ

0

С простыми эффектами, необходимо трансформировать как успешную 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 состояние.

+0

Удивительно, это именно то, что я искал. Cheers Ochrons =) – stackoverflowed