我使用redux-actions和redux-promise-middleware来发送操作,以及TypeScript 2.1
用于 async await
支持 .
这是一个同时使用 redux-actions
和 redux-promise-middleware
的动作
// create an async action
const fooAction = createAction('FOO', async () => {
const { response } = await asyncFoo();
return response;
});
// use async action
fooAction('123')
这是动作链的一个例子,仅使用 redux-promise-middleware
const foo = () => dispatch => {
return dispatch({
type: 'TYPE',
payload: new Promise()
})
.then(() => dispatch(bar()));
}
redux-promise-middleware
中的链接如何与 redux-actions
一起使用?
2 回答
你必须要记住,即使
async await
看起来是同步的,它也会使用Promise,并且async
函数将始终返回Promise,无论你是否使用await
.由于
createAction
的第二个参数是您的有效负载创建者,因此没有任何东西可以阻止您使用生成的对象 .以下是基于初始代码的示例:
Aperçu回答的问题是“await”是你阻塞事件循环而你必须直接处理Promises .
有一个替代"redux-promise-middleware",redux-auto与redux-promise-middleware具有相同的API,但也有一个链接reducers调用的机制 .
你的例子看起来像:
真的,就是这样 . 您只需要将操作分配给链属性,而redux-auto将在redux生命周期的正确位置调用它
这是文档chaining action together