首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在重复编写用于分派的块时,"next“和"store.dispatch”有什么区别?

在重复编写用于分派的块时,"next“和"store.dispatch”有什么区别?
EN

Stack Overflow用户
提问于 2016-07-15 02:54:49
回答 1查看 172关注 0票数 2

在视频课程:https://egghead.io/lessons/javascript-redux-dispatching-actions-asynchronously-with-thunks中,我们学习如何编写自己的块,这样我们就可以在操作创建器中进行异步和多个分派调用。我大体上理解这一点。

然而,我很困惑为什么我们在推文中使用store.dispatch而不是next

代码语言:javascript
运行
复制
const thunk = (store) => (next) => (action) =>
  typeof action === 'function' ?
    action(store.dispatch) :
    next(action);

为什么要使用next而不是store.dispatch,反之亦然?我知道next发展到了下一个中间件,但是如果下一个中间件最终也调用了dispatch,我为什么要使用store.dispatch而不是next

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 05:42:29

正如您已经指出的,next只调用链中的下一个中间件。虽然它最终确实会调用原始的调度函数,但当您想再次遍历整个链时,使用它是不合适的。在thunks的情况下,您希望遍历整个链。

因此,如果您正在创建一个中间件,您想在其中做一些工作,然后继续往下走,那么可以使用next。例如,记录器执行以下操作:记录操作,调用next,然后记录结果状态。要返回遍历整个链的回调,请返回store.dispatch。您似乎不太可能想要从中间件返回next,因为您可能会假设您不知道在当前中间件之前和之后出现了哪些中间件,因此在中间件链之外调用它的结果是不可预测的。

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

https://stackoverflow.com/questions/38382124

复制
相关文章

相似问题

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