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()


但是,为什么我们要进行深拷贝,为什么必须反转阵列呢?

这让我很困惑。请帮忙!

最佳答案

我在这里找到了答案:

Redux: The Middleware Chain

它说:


  最后,我想修正指定中间件的顺序。当前以覆盖函数的顺序指定它们。但是,指定操作在中间件中传播的顺序将更为自然。


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

关于javascript - 为什么我们在redux applyMiddleware函数中执行slice()和reverse()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44342948/

10-09 16:08