我正在使用redux-thunk。我需要将状态设为空,然后将其填充数据。由于某种原因,我为此有两个单独的动作,emptyName,addName。
所以我在做的只是将它们连续分派,例如:
dispatch(emptyName());
dispatch(addName("London"));
但是我想等第一个完成,然后再发送另一个,以确保如果第一个由于某种原因被弄乱了,我们不会分派第二个动作。
该怎么做?我相信派遣不是一个承诺,所以我不能只做:
await dispatch(emptyName());
dispatch(addName("London"));
(请不要说没有必要针对这种情况。因为在其他更关键的情况下,我可能想稍后再做,所以我可能真的需要等待第一次成功完成)
P.S。如果无法使用thunk,那么我也可以使用saga解决方案:)
如果您正在使用redux-thunk,则可以从操作中返回一个Promise并使用.then(或等待)
emptyName().then(() => {
addName("London");
});
我已经在操作中使用setTimeout创建了一个人为的示例来代替数据获取,但是原理是相同的。