在一个史诗RXJS中调用另一个史诗



我对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将执行。

这太简单了。您必须根据需要修改

相关内容

  • 没有找到相关文章

最新更新