Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在重复编写用于分派的块时,"next“和"store.dispatch”有什么区别?

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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-14 21:42:29

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

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

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

https://stackoverflow.com/questions/38382124

复制
相关文章
【点滴】在 promise 中 then 和 finally 有什么区别
看上去 promise.prototype.then() 和 promise.prototype.finally 似乎非常相似。但是你需要明白它们有一些重要的差异。
疯狂的技术宅
2021/04/01
2.3K0
页面导入样式时,使用link和@import有什么区别?
区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
Javanx
2019/09/04
4.1K0
页面导入样式时,使用link和@import有什么区别?
Carson带你学JVM:方法分派模型-静态分派、动态分派
前言 了解 行为方法分派 有利于在行为分派时时进行一些功能操作 本文全面讲解行为分派的类型:静态 & 动态行为分派,希望你们会喜欢。 目录 1. 知识储备 1.1 分派 定义:确定执行哪个方法 的过程 a. 疑问 有些读者会问,方法的执行不是取决于代码设置中的执行对象吗?为什么还要选择呢? b. 回答 若 一个对象对应于多个方法 时,就需要进行选择了 读者应该都想到了 Java中的特性:多态,即重写 & 重载。下面我会详细讲解。 分类:静态分派 & 动态分派。下面我将详细讲解。 1.2 变量的
Carson.Ho
2022/03/25
4480
Carson带你学JVM:方法分派模型-静态分派、动态分派
编写dll时,为什么有 extern “C”
编写dll时,有个重要的问题需要解决,那就是函数重命名——Name-Mangling。解决方式有两种,一种是直接在代码里解决采用extent”c”、_declspec(dllexport)、#pragma comment(linker, "/export:[Exports Name]=[Mangling Name]"),另一种是采用def文件。
CN_Simo
2022/05/10
2.6K0
编写dll时,为什么有 extern “C”
面试时必问题:接口和抽象类 有什么区别??
定义一个接口中的方法时,其访问控制修饰符只能是public或者是没有,如果没有修饰符也是默认的是public。如果用其它访问控制修饰符会有错误
fanfan
2022/05/06
2190
面试时必问题:接口和抽象类 有什么区别??
在公司做的项目和自己在学校做的有什么区别?
本文转自:Java3y 不知道大家还是学生的时候有没有这个问题:公司做的项目和自己在学校练手的项目有多大的区别。我以前在学校跟着视频做一些项目练手,总感觉公司做的东西会要难很多,不知道跟公司的真实项目区别在哪。
Java技术江湖
2019/10/08
7780
在公司做的项目和自己在学校做的有什么区别?
在公司做的项目和自己在学校做的有什么区别?
不知道大家还是学生的时候有没有这个问题:公司做的项目和自己在学校练手的项目有多大的区别。我以前在学校跟着视频做一些项目练手,总感觉公司做的东西会要难很多,不知道跟公司的真实项目区别在哪。
Java3y
2019/07/04
8350
Closeable和AutoCloseable有什么区别?
导读:我们知道,在java中jvm虚拟机会自动去调用gc(垃圾回收器)去回收堆中没有被引用的对象,至于什么时候回收,是不确定的,同时有些是用到其他资源,jvm也不会进行回收,类似Io流中的FileInputStream使用到了硬盘资源,垃圾回收器是不会去回收的,因此,必须手动关闭掉。我们进行手动的编写close()方法进行关闭,然而,每次这些写会造成代码冗余不优雅,JDK中对于释放资源有Closeable和AutoCloseable可以使用,以下为详解。
码农架构
2021/04/22
3.2K0
Closeable和AutoCloseable有什么区别?
蓝牙和WiFi有什么区别?
如果您拥有手机、笔记本电脑、计算机或任何其他现代电子设备,知道蓝牙和 WiFi 。
网络技术联盟站
2021/11/05
2.2K0
蓝牙和WiFi有什么区别?
OracleJDK和OpenJDK有什么区别?
Oracle JDK与OpenJDK里的JVM都是HotSpot VM。从源码层面说,两者基本上是同一个东西。
码农架构
2021/09/18
1.9K0
OracleJDK和OpenJDK有什么区别?
kubernetes和docker有什么区别
本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。
码农编程进阶笔记
2023/03/23
2K0
kubernetes和docker有什么区别
int和Integer有什么区别?
Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等Java语言特性。
灬沙师弟
2022/10/07
4.1K1
Exception和Error有什么区别?
世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的
灬沙师弟
2022/09/06
1.5K0
Exception和Error 有什么区别
checkedException 一般是外部错误,这个异常发生在编译阶段。Java 编译器会强制去捕获此类异常。一般会要求把这段可能出现的异常程序进行 try catch。
王小明_HIT
2019/10/15
1.7K0
沪市和深市有什么区别?
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168351.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/20
1.5K0
声明和定义有什么区别
问题 C/C++ 中,声明和定义有什么区别? 回答 1. 声明不分配存储空间,定义会分配。 定义会实实在在地创造这个东西,而声明只是告诉编译器有这么个东西,它的创造在别处。 extern int bar; // 声明 extern int g(int, int); // 声明 double f(int, double); // 声明 class foo; // 声明 int bar; // 定义 int g(int lhs, int rhs) {return lhs*rhs;} // 定义 double
ClearSeve
2022/02/11
1.5K0
列表和元组有什么区别
如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗? TypeError Traceback (most recent call last) in() 4 5 # 现在改变b中数据的值 — 6 b[2] = 4 TypeError: ‘tuple’ obje
企鹅号小编
2018/02/26
2K0
列表和元组有什么区别
Jsp和Servlet有什么区别?
Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service()方法,service()方法会根据需要调用与请求对应的doGet或doPost等方法;当服务器关闭或项目被卸载时服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。
李红
2019/08/28
2.4K0
Jsp和Servlet有什么区别?
int 和 Integer 有什么区别?
int 是 java 的原始数据类型,Integer 是 java 为 int 提供的封装类。
MickyInvQ
2020/09/27
1.5K0
CountdownLatch 和 CycliBarriar 有什么区别?
一位工作5年的小伙伴面试的时候,被问到这样一个问题,说,CountdownLatch 和 CycliBarriar 有什么区别?这个对于很多人都会比较陌生,但是接触过并发编程的小伙伴来说还是比较简单的。
Tom弹架构
2022/12/19
2.4K0
CountdownLatch 和 CycliBarriar 有什么区别?

相似问题

node * next和node * next有什么区别吗?

10

Node * next和Node<T> * next有什么区别?

11

在Redux中-使用store.dispatch()和dispatch()有什么区别吗?

156

针织`{}块和<<>>块有什么区别?

23

在编写诺言.catch()块时,e和e.message之间有什么区别?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文