我和一位同事向我们的 android 应用程序添加了一个类似 redux-observable 的流程,但无法弄清楚如何创建一个在第一次调用完成之前停止接收操作的史诗。
最初我以为我们可以使用skipUntil()
,但后来意识到结果skipUntil()
被吞下,并且从未传递给链条的其余部分。
下面是一些粗略的 JS 代码,展示了我们希望完成的工作。
const fetchUserEpic = action$ =>
action$.ofType(FETCH_USER)
.skipUntil( /* first request completes */ )
.mergeMap(action =>
ajax.getJSON(`/api/users/${action.payload}`)
.map(response => fetchUserFulfilled(response))
.takeUntil(action$.ofType(FETCH_USER_CANCELLED))
);
这几乎就像我需要一个skipMap()
操作员,它的行为就像switchMap()
但一次只尊重一个请求,而如果一个可观察的正在进行,则忽略所有项目。
感谢您的任何建议。