Javascript 在redux操作中传递承诺接受函数是否是一种反模式、替代方案?

Javascript 在redux操作中传递承诺接受函数是否是一种反模式、替代方案?,javascript,redux,react-redux,Javascript,Redux,React Redux,我有时有一个GUI组件,需要知道异步操作何时完成。基本上,我发出一个动作,我想要一个承诺,当这个过程完成时,这个承诺就会产生。据我所知,该组件不能简单地侦听来自存储的操作。或者可以吗 我使用redux传奇,但我认为这是一个普遍的问题 我现在这样做的方式是创建一个承诺,并将接受/拒绝函数传递给操作,这样无论处理它的是什么,都可以为我解决承诺。然后,我信守承诺,希望采取行动,调用方法。(我没有将方法存储在状态中,只是存储在处理操作的传奇中。) 这似乎很脆弱,我想知道:当流程完成时,我的组件是否有其他

我有时有一个GUI组件,需要知道异步操作何时完成。基本上,我发出一个动作,我想要一个承诺,当这个过程完成时,这个承诺就会产生。据我所知,该组件不能简单地侦听来自存储的操作。或者可以吗

我使用redux传奇,但我认为这是一个普遍的问题

我现在这样做的方式是创建一个承诺,并将接受/拒绝函数传递给操作,这样无论处理它的是什么,都可以为我解决承诺。然后,我信守承诺,希望采取行动,调用方法。(我没有将方法存储在状态中,只是存储在处理操作的传奇中。)

这似乎很脆弱,我想知道:当流程完成时,我的组件是否有其他方式可以接收事件?我知道我可以用状态来发信号,但有时候这对这个小东西来说似乎太多了

编辑


我遇到的一个案例是提交表格。(sagas)中间件将首先运行验证(也可以是异步的),然后将表单提交给服务器。在这个过程中,我不希望用户能够再次单击或编辑。这是承诺帮助确保的。和往常一样,当我向某人提出问题时,我意识到在这种特定情况下,使用redux州标志会更好——尽管有点复杂。但是,我有更多这样的情况,所以我的问题是。

“我现在这样做的方式是创建承诺,并将接受/拒绝函数传递给操作…”为什么这样做,而不是让操作创建承诺并将其交给代码?通常,承诺的创建和结算应由同一事物处理。在X中创建承诺但在Y中解决它感觉是错误的。你是对的,但是当我使用原始操作方法并在react
connect
方法中绑定它们时,我无法返回承诺(?)。redux thunk以这种方式使用时确实会回报一个承诺,但仍然不允许我们等待一个传奇故事的完成并提出一个“完成的行动”。这听起来让我感到困惑。你能举个例子吗?您的场景是什么“我现在这样做的方式是创建承诺,并将接受/拒绝函数传递给操作…”为什么不让操作创建承诺并将其传递给代码?通常,承诺的创建和结算应由同一事物处理。在X中创建承诺但在Y中解决它感觉是错误的。你是对的,但是当我使用原始操作方法并在react
connect
方法中绑定它们时,我无法返回承诺(?)。redux thunk以这种方式使用时确实会回报一个承诺,但仍然不允许我们等待一个传奇故事的完成并提出一个“完成的行动”。这听起来让我感到困惑。你能举个例子吗?你的设想是什么