javascript - 获得行动结果的最佳方式是什么?
问题描述
我很好奇获得行动结果是否是一种有效的方法,如果是那么如何做到这一点?
例如,假设我有一个带有用于创建实体的表单的页面,在成功创建实体后,我想将用户重定向到实体的详细视图,否则(失败时)通过错误消息更新表单。我想在不混淆应用程序层的情况下执行此操作(例如,在成功后不以史诗/效果重定向用户)。
对于这个问题,我有几种方法:
(可观察模式)分派一个“触发”
entity_add
动作(可以同时创建实体,在这种情况下如何区分实体的失败/成功操作?entity_add_success
entity_add_failure
(回调模式)调度一个带有额外回调参数的触发动作,当动作结果确定时应该调用该参数,这种方法也有一个缺点(虽然没有前一种那么大):可能创建回调地狱。
(服务模式)在这种情况下放弃使用flux,直接使用服务,设计缺点:混合应用层
我很高兴听到任何想法。
解决方案
我多次成功地使用了第二个选项(将回调附加到启动操作)。在我看来,这是最好的权衡。我看不到深度嵌套回调(“回调地狱”)的风险,因为通常我只需要触发一个动作,然后做一些简单的事情,比如导航到另一个页面。
推荐阅读
- bash - 如何将每列值分配给其名称?
- javascript - 模态弹出窗口在屏幕一侧闪烁。我怎样才能解决这个问题?
- apache - 具有多个重写规则的 Htaccess
- html - 如何存储从
- kubernetes - 从值 yaml 覆盖 tpl 值
- python - 处理编码 - 使用 Python 进行网页抓取
- maven - 在 Zulu JDK 中找不到 Tools.jar
- java - Java Swing:按钮仅在鼠标悬停时显示图标
- react-native - 从 LocMapview.js 重定向到 => ShowInfo.js 时遇到的简单错误
- flutter - Flutter - 我想创建一个自定义 TextFomrField 边框