Каков наилучший способ получить результат действия? - PullRequest
0 голосов
/ 21 февраля 2019

Мне любопытно, если получение результата действия является правильным подходом, и если это так, то как это сделать?

Например, допустим, у меня есть страница с формой для создания сущностей после успешной сущностисоздание Я хотел бы перенаправить пользователя в подробный вид объекта, в противном случае (при ошибке) обновить форму сообщениями об ошибках.Я хотел бы выполнить это без смешения прикладных слоев (например, чтобы не перенаправлять пользователя в эпик / эффект после успеха).

У меня есть несколько подходов к этой проблеме:

  1. (наблюдаемый шаблон) отправляет «триггерное» действие (entity_add), затем отправляет успешное (entity_add_success) или неудачное (entity_add_failure) действие где-нибудь в моем эпосе / эффекте, ожидает сбоя илиУспешное действие и выполнение действия - у этого подхода есть заметный недостаток: в то же время могут быть созданы другие объекты, и как отличить действия объектов при сбое / успехе в этом случае?

  2. (шаблон обратного вызова) отправляет триггерное действие с дополнительным параметром обратного вызова, который должен вызываться при определении результата действия, этот подход также имеет недостаток (хотя и не такой большой, как предыдущий): возможность создания ада обратного вызова.

  3. (схема обслуживания) в этом случае отказаться от использования потока, использовать службы напрямую, недостаток проекта: смешивание прикладных слоев

Буду рад услышать любые идеи.

1 Ответ

0 голосов
/ 27 февраля 2019

Я использовал второй вариант (прикрепление обратного вызова к инициирующему действию) несколько раз успешно.Это лучший обмен на мой взгляд.Я не вижу риска глубоко вложенных обратных вызовов («ад обратного вызова»), потому что обычно мне просто нужно запустить одно действие, а затем сделать что-то простое, например перейти на другую страницу.

...