【发布时间】:2017-02-16 01:39:11
【问题描述】:
我正在为redux-observable 苦苦挣扎,试图弄清楚如何使用此流程创建史诗:
- 收听
GET_ITEMS_REQUEST操作 - 发送 HTTP 请求以获取一些项目
- 获取这些项目的 ID 并发送
GET_ITEM_DETAILS_REQUEST操作,这将发送另一个 HTTP 请求以获取这些项目的更多详细信息 - 使用第二个请求中的详细信息装饰第一个请求中的项目,并调度最终的
GET_ITEMS_SUCCESS操作,这将更新 redux 状态
从第 3 步到第 4 步是我卡住的地方。我知道如何使用项目 ID 发送 GET_ITEM_DETAILS_REQUEST,但我不知道如何收听/订阅 GET_ITEM_DETAILS_REQUEST 操作以获取项目详细信息响应。
到目前为止,我有以下内容:
function getItemsEpic(action$) {
return action$
// step 1
.ofType('GET_ITEMS_REQUEST')
.mergeMap(() => {
// step 2
return Observable.from(Api.getItems())
})
.mergeMap((items) => {
// step 3
const itemIds = items.map((item) => item.id);
return Observable.of({
type: 'GET_ITEM_DETAILS_REQUEST',
ids: itemIds
});
})
// ... what now?
.catch(() => {
return Observable.of({
type: 'GET_ITEMS_FAILURE'
});
});
}
【问题讨论】:
标签: reactjs redux rxjs redux-observable