javascript – Redux中间件设计re:返回值

所以我刚刚阅读了redux中间件,听起来很棒.但有一件事就是烦恼 – 中间件的返回值.

我理解中间件的一些实例返回东西(即redux-promise),而我得到的其他中间件(即日志记录)没有 – 并简单地返回next(action)的结果.

我的问题是如果我想使用两个返回内容的中间件会发生什么 – 当然它们会互相破坏,我只会获得最外层中间件的返回值.

表达/连接中间件通过让中间件将其“结果”写入req和res对象来解决这个问题,但是使用redux的解决方案是什么?

编辑

这是我的问题的一个更具体的例子:

我有两个中间件:

>中间件将所有被分派的动作推迟3秒.此中间件返回一个可以调用以取消调度的函数
>返回数字5的中间件,因为出于某种原因我需要数字5.

根据我将这两个中间件链接起来的顺序,我的调度(动作)的结果将是延迟取消fn或数字5.但是我如何得到这两个结果呢?

最佳答案 看看applyMiddleware上的文档.它解释了中间件应该被编写为可组合的,这样它就可以插入到中间件链中,而不必担心在它之前和之后应用的中间件:

The key feature of middleware is that it is composable. Multiple
middleware can be combined together, where each middleware requires no
knowledge of what comes before or after it in the chain.

该文档非常好地解释了要传递给中间件的参数和预期的返回.

http://redux.js.org/docs/api/applyMiddleware.html

点赞