[英]RXJS observable not completing on flatMap(Observable::from)
我想做的是使用流從mongodb中提取一些數據,對數據進行一些操作,使用傳入數據的鍵在mongo中進行另一個查詢,然后將數據聯接。
實際的代碼要復雜得多,但我將用更簡單的示例進行說明。
我的問題是,完成時永遠不會被解雇,我想這是因為外部的可觀察對象永遠不會完成。
const o$ = RxNode.fromStream(getDataFromMongo(), 'end'))
.filter(doSomeFiltering)
.bufferCount(100)
.flatMap(bufferedData => {
let ids = _.map(bufferedData, 'id');
return RxNode.fromStream(getMoreDataFromMongodb(ids))
.reduce(createMapIdObject(), {})
.flatMap(createdMap => { //because i get here, outer never complets
return Observable.from(bufferedData)
.map(item => ({
id: item.id,
size: createdMap[item.id].size
}));
});
})
.subscribe(
c => console.log(c),
err => console.log(err),
() => console.log('COMPLETE') // never happens
);
我怎樣才能得到完整的射擊? 還是有更好的方法來完成我要達到的目標?
如果我從嵌套的flatMap
內部將Observable.from
.finally(() => console.log(done)
鏈接.finally(() => console.log(done)
被觸發,因此內部observable可以完成,但是外部沒有。
您可以在訂閱前簡單地添加take(1)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.