首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作保护/中间件-如何检查条件?

操作保护/中间件-如何检查条件?
EN

Stack Overflow用户
提问于 2020-03-14 13:21:45
回答 1查看 59关注 0票数 0

我创建了大型应用程序,我需要更多地控制行动的调度。

我知道,我可以检查组件中的条件,当条件不够时,我可以取消调度操作调用,但是当更多的组件必须检查相同的条件时,可能会不舒服。

这样的过程应该是什么样的呢?

我有个主意,但我不确定是个好办法:

  1. Component检查条件,
  2. Component调用@Dispatch function属于Facade (大型service)
  3. @Dispatch function调用Guard / Middleware
  4. Guard / Middleware 再次检查条件(如果条件不匹配抛出exception)
  5. @Dispatch function调用action
  6. ...

)

如果这是个好主意。

如何实施这样的警卫呢?

它应该以服务的形式存在还是以箭头函数的形式在参数中接受store

EN

回答 1

Stack Overflow用户

发布于 2020-03-14 14:43:46

在组件级别上,我想您可以实现自己的过滤器,如果该过滤器处于高度重用状态,则可以将其设置为可重用的可调用运算符。

示例rxjs过滤器

代码语言:javascript
复制
myCompFilter=pipe(filter(x=>x.....))

如果您想要普通过滤器,它只是一个普通函数,返回true或false。

代码语言:javascript
复制
filter=(x)=>x>0?

对于操作保护,您可以通过包装store.dispatch()来创建自定义分派函数。

代码语言:javascript
复制
customDispatch=(action)=>if(x) store.dispatch()

所以把它们结合在一起,你就会得到这样的东西

代码语言:javascript
复制
doSomething.pipe(myCompFilter,tap(()=>customDispatch())

还可以通过返回高阶函数使customDispatcher和过滤器更加可定制(也可以称其为部分函数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60683195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档