为什么我们要做slice()& reversex中的reverse()applyMiddleware函数?

时间:2017-06-03 10:32:37

标签: javascript reactjs redux middleware

official doc of redux middleware

它有一个redux applyMiddleware函数的展示案例:

function applyMiddlewareByMonkeypatching(store, middlewares) {
  middlewares = middlewares.slice()
  middlewares.reverse()

  // Transform dispatch function with each middleware.
  middlewares.forEach(middleware =>
    store.dispatch = middleware(store)
  )
}

我无法理解为什么要做slice()& reverse()在这里。

// This can make a deep copy of middlewares parameter.
middlewares = middlewares.slice()

但是为什么我们要制作一份深层副本,为什么我们必须反转数组?

这让我很困惑。请帮忙!

1 个答案:

答案 0 :(得分:2)

我在这里找到了答案:

Redux: The Middleware Chain

它说:

  

最后,我想修复指定中间件的顺序。它们当前按照调度函数被覆盖的顺序指定。但是,指定操作通过中间件传播的顺序会更自然。

如果我们看到action中的中间件订单通过订单,则会更加明确。