我对RXJS和一般开发都很陌生。我最近开始使用rxjs,我发现自己遇到了以下问题,我希望得到一些帮助/指导和解释。
export const updateSomethingEpic1 = (action$) =>
action$
.ofType('UPDATE_SOMETHING')
.switchMap(({ result }: { result }) =>
//SOME API CALL
.map(({ response }) => updateSomethingSuccess(response))
**make call to second epic**
.catch(err => updateSomethingError(err)),
);
//My second epic
export const updateSomethingEpic2 = (action$) =>
action$
.ofType('UPDATE_SOMETHING2')
.switchMap(({ result }: { result }) =>
//SOME API CALL
.map(({ response }) => updateSomethingSuccess2(response))
.catch(err => updateSomethingError2(err)),
);
我的问题是,在我的第一部史诗调用了api并成功请求后,我该如何调用我的第二部史诗。想要在updateSomethingSuccess
操作后的第一个史诗中进行调用,这会向存储添加响应,然后调用第二个api。
只需返回一个操作。来自样本的代码
.map(({ response }) => updateSomethingSuccess(response) **<--- make call to second epic**)
使用
.map(({ response }) => updateSomethingSuccess(response) )
其中updateSomethingSuccess(response(是类似于以下的操作创建者
function updateSomethingSuccess(response) {
return { type: 'UPDATE_SOMETHING2', payload: response}; // HERE
}
然后,您的史诗2与类型UPDATE_SOMETHING2将执行。
这太简单了。您必须根据需要修改