You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux中返回函数的函数参数解释及异步写法相关疑问咨询

问题解答

1. 此处的async (dispatch) => {}是我们自定义的函数吗?

是你自定义的逻辑封装函数,你不会直接调用它,你正常调用外层的getCurrentProfile()之后,返回的这个异步函数会交给Redux中间件去执行。

2. 为什么需要定义这个自定义函数?

原生Redux的dispatch只支持接收普通对象格式的Action,没办法直接处理异步逻辑(比如接口请求、定时器这类需要等待结果再执行后续操作的场景)。这个嵌套的函数就是用来承载你的异步业务逻辑的,Redux中间件识别到你传入的是函数而非普通Action对象时,就会自动执行这个函数,帮你管控异步流程。

3. 我知道dispatch的作用,但此处的dispatch来自哪里,为什么要在两个对象处调用它?

这个dispatch就是你Redux Store实例自带的原生dispatch方法,是Redux Thunk中间件执行你返回的异步函数时,主动注入的参数。
两处调用对应不同的业务状态分支:

  • 接口请求成功时,dispatch类型为GET_PROFILE的Action,把接口返回的用户资料数据传给Reducer更新全局状态
  • 接口请求报错时,dispatch类型为PROFILE_ERROR的Action,把错误提示、状态码等信息传给Reducer更新错误状态

4. 这种写法如果有对应模式的话,名称是什么?

这个是Redux生态的Redux Thunk 异步Action写法,对应的通用设计模式叫Thunk模式,核心逻辑是把需要延迟执行的代码包裹在函数内,等到需要执行的时机再触发调用。


内容的提问来源于stack exchange,提问作者Ridwan Bin Monjur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:45:04