在下面,我有一个redux实现的片段,我想从概念上总结一下。
我想在后端使用redux来帮助维持代码的控制流。我在getRequirerDir
,getPathResolved
和getModuleResolved
下面有简单的函数。我想使用redux中的动作将这三个函数链接在一起,并且我想用返回的值构建一个对象。其中之一就是承诺。我实现了redux thunk。
const start = (moduleString, requirer) => {type: 'START', moduleString, requirer}
const moduleString = './index.js'
const requirer = ''
store.dispatch(start(moduleString, requirer))
const getRequirerDir = (requirer) => path.dirname(requirer)
const getPathResolved = (requirerDir, moduleString) => path.resolve(requirerDir, moduleString)
const getModuleResolved = async (pathResolved) => await ModuleString.resolve(pathResolved)
// starting state
// {}
// ending state
// {moduleString, requirer, requirerDir, pathResolved, moduleResolved}
最佳答案
注意:这可能无法完全回答您的问题。
这是个有趣的问题。我注意到您自己已经完成了预期的实施。对此表示敬意。但是,在后端维护应用程序状态是一个坏习惯。但是在某些情况下,您可能需要临时维护状态。如果上述状态持续较长时间,建议您使用Redis。
如果不是这样,有多种方法可以解决您的问题。我认为最适合您的用例的是SAGA。使用Sagas,您可以将应用程序编写为状态机。这个概念也被用来实现Redux-Saga库。但是,您可能需要手工实现Sagas或使用专门为NodeJ设计的Saga库。