在RxJs中执行某些操作后,是否有方法将子属性合并回父源?

在RxJs中执行某些操作后,是否有方法将子属性合并回父源?,rxjs,reactive-programming,Rxjs,Reactive Programming,我有一个操作符,它对源的子属性执行一些递归操作。在完成递归操作后,如何将子属性合并回源中 const state={ 职位:[ {id:3,标题:'t1',用户id:1}, ], 索引:0, 配置:{ 前一个缓冲区大小:1, 下一个缓冲区大小:1, } }; const source=新行为主体(状态); const generatePreviousPosts$=(posts)=>{ 返回可观察的。创建(观察者=>{ getPost(帖子[0]。id-1) 。然后(上一篇文章=>{ 下一位观察员

我有一个操作符,它对源的子属性执行一些递归操作。在完成递归操作后,如何将子属性合并回源中

const state={
职位:[
{id:3,标题:'t1',用户id:1},
],
索引:0,
配置:{
前一个缓冲区大小:1,
下一个缓冲区大小:1,
}
};
const source=新行为主体(状态);
const generatePreviousPosts$=(posts)=>{
返回可观察的。创建(观察者=>{
getPost(帖子[0]。id-1)
。然后(上一篇文章=>{
下一位观察员([先前的职位,…职位]);
});
});
};
const previousBuffer$=source.pipe(
拔(“柱子”),
展开(generatePreviousPosts$),
点击(console.log),
//我该怎么做才能将帖子合并回该州,这样我就可以使用takeWhile了?
takeWhile(状态=>{
const{posts,config,index}=state;

return posts.length一种方法是使用mergeMap,但我觉得这个问题可能有更优雅的解决方案

const previousBuffer$=source.pipe(
合并地图(
state=>(of(state.posts)
.pipe(展开(generatePreviousPosts$),
(州,职位)=>({…州,职位}),
takeWhile(状态=>{
const{posts,config,index}=state;

return posts.length是rxjs gitter上提供的一个更优雅的解决方案

const shouldGetPost=({posts,config,index})=>posts.length!shouldGetPost({posts,config,index})为空:
来自(getPost(posts[0].id-1)).pipe(
映射(previousPost=>({[previousPost,…posts],config,index}))
)
const previousBuffer$=source.pipe(
展开(generatePreviousPosts)
);