有没有一种更干净的方法来组织合并中的多个RXJS观测值?
下面的史诗按照预期工作。在进行api调用之前,它在merge操作符中调用多个操作。然而,我只是想知道有没有一种更干净的方法来调用重置操作,而不是像我一样列出单独的观察值。是否可以在数组中列出它们?还是其他方式有没有一种更干净的方法来组织合并中的多个RXJS观测值?,rxjs,redux-observable,Rxjs,Redux Observable,下面的史诗按照预期工作。在进行api调用之前,它在merge操作符中调用多个操作。然而,我只是想知道有没有一种更干净的方法来调用重置操作,而不是像我一样列出单独的观察值。是否可以在数组中列出它们?还是其他方式 const imageUploadEpic = (action$, state$) => action$.pipe( ofType('UPLOAD_IMAGE'), mergeMap(action => concat( merge
const imageUploadEpic = (action$, state$) =>
action$.pipe(
ofType('UPLOAD_IMAGE'),
mergeMap(action =>
concat(
merge(
of({ type: 'RESET_IMAGE' }),
of({ type: 'RESET_COLOURS' }),
of({ type: 'RESET_LOCALISER' })
),
from(
axios.post(`/uploads/url`, {
url: action.src
})
).pipe(
map(response => ({
type: 'UPLOAD_IMAGE_SUCCESS',
data: response.data,
})),
catchError(error =>
of({
type: 'UPLOAD_IMAGE_ERROR',
error
})
)
)
)
)
);
您可以利用以下事实:接受
可观测输入
参数,并且数组是可观测输入
:
const imageUploadEpic=(操作$,状态$)=>
动作$.pipe(
ofType('UPLOAD_IMAGE'),
合并映射(操作=>
海螺(
[
{type:'RESET_IMAGE'},
{键入:“重置颜色”},
{type:'RESET_LOCALISER'}
],
from(axios.post(`/uploads/url`,{url:action.src})).pipe(
映射(响应=>({
键入:“上传图像成功”,
数据:response.data,
})),
catchError(错误=>
的({
类型:“上载图像错误”,
错误
})
)
)
)
)
);
答案是正确的,但是您应该使用concat
而不是merge
-concat
保证保持秩序。(OP也使用concat
)