如何解决了解Redux Epic中的mergeMap
我想知道是否有人可以帮助我理解这段代码(来自官方的redux文档)
const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),mergeMap(action =>
ajax.getJSON(`https://api.github.com/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response))
)
)
);
我知道什么是史诗(动作进入,动作退出等),并且了解动作将通过action$.pipe
进行,然后您通过ofType
选择所需的动作,并且它们必须返回另一个行动。
但是,我很难理解在调用mergeMap之后会发生什么。
据我了解(这可能是非常错误的),mergeMap将变平并合并外部可观察对象(在这种情况下为action$
)与内部可观察对象(在这种情况下为获取json的调用)。从内部可观察到,我们正在管道映射,它将从api调用中获取数据,并使用它来调用下一个动作。
我觉得我在这里缺少一些东西,无法理解可观察到的流程。我确实阅读了官方文档,但无法完全掌握它。
解决方法
p
是所有操作的流,actions$
过滤该流,以便仅FETCH_USER操作可通过。
mergeMap采取由流发出的FETCH_USER操作,并返回一个可观察的对象,该对象将在http请求完成后发出。 http请求上的map函数将http请求的响应映射到另一个操作。
map
和flatten
分成单个Observable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。