码迷,mamicode.com
首页 > 其他好文 > 详细

redux-thunk源码分析

时间:2020-03-10 15:48:19      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:www   中间件   hunk   chain   一个   turn   EAP   源码分析   参考   

 

 1 "use strict";
 2 
 3 function createThunkMiddleware(extraArgument) {
 4   return function (_ref) {
 5     var dispatch = _ref.dispatch,
 6         getState = _ref.getState;
 7     return function (next) {
 8       return function (action) {
 9         if (typeof action === "function") {
10           return action(dispatch, getState, extraArgument);
11         }
12         return next();
13       };
14     };
15   };
16 }  // 将箭头函数转换为普通的函数 参考:https://www.jianshu.com/p/a3b9b0958aeb

 

调用createThunkMiddleware

就必须执行并且再传入_ref 。

这在redux中有相应步骤 将 middlewareAPI 传入

 const middlewareAPI = {
      getState: store.getState,
      dispatch: (...args) => dispatch(...args)
    }
    const chain = middlewares.map(middleware => middleware(middlewareAPI))

再得到一个方法,需要传入next

这在redux中也有做相应步骤,

dispatch = compose(...chain)(store.dispatch)

再得到一个方法需要传入一个action 

此方法未执行,  只有在dispatch的时候才会执行。

这就是中间件的作用,包装后的dispatch.  可以接受一个函数。

 

redux-thunk源码分析

标签:www   中间件   hunk   chain   一个   turn   EAP   源码分析   参考   

原文地址:https://www.cnblogs.com/yaooo/p/12455849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!