我有一个名为 initialiseApp 的操作,显然它会初始化应用程序。我需要服务器提供一些东西,例如用户信息、样式和正在显示的页面的一些详细信息(它是一个单页应用程序)。我正在使用 redux-sagas,但我想不出一种方法来链接异步操作,以便它们按顺序发生,而不是并行发生。
我需要在请求任何样式信息之前调用用户信息,因为在服务器端,对用户的调用会去检索用户并在会话中设置一些东西。由于目前正在并行请求样式,因此显示错误,因为尚未在服务器上设置用户。
所以我尝试使用 put.sync 但这似乎不起作用,但这是我到目前为止的代码(顺便说一下,我也在使用 TypeScript):
private *invokeAndWaitOn(action: IAction<any>) {
const putSync = (put as any).sync; // The typings file for redux-sagas does not yet include put.sync
yield putSync(action);
}
private *invokeArrayOfActions(actions: IAction<any>[]) {
for (let action of actions) {
yield* this.invokeAndWaitOn(action);
}
}
但这似乎不起作用,我找不到任何关于如何正确使用 redux-saga 的 put.sync 效果的示例。
谁能看到我做错了什么,或者有更好/正确的方法吗?
提前致谢。