我尝试将2个Observable流与combineLatest
合并为1个流。
只有.map()
函数不会对结果流起作用。并且由于不起作用,我的意思是下面的示例中没有记录任何内容。另一方面,如果我为.map()
函数切换.subscribe()
函数,那么一切正常。我的observable来自使用angularfire2
库的firebase。我还导入了map
函数,它适用于其他Observable流。
const placeList = this._db.list(URL)
.map(this.flattenJSON);
const placeImages = this._db.list(URL);
Observable.combineLatest(placeList, placeImages)
.map(response => {
console.log(response);
return response;
});
有谁知道为什么subscribe
功能有效,map
没有?有没有人有关于如何合并2个firebase Observable流并映射此流的建议。请注意,angularfire2
产生的Observable流未完成。
答案 0 :(得分:2)
如果您想让它实际执行,您应该始终订阅一个observable。只需在地图后链subscribe()
:
const placeList = this._db.list(URL)
.map(this.flattenJSON);
const placeImages = this._db.list(URL);
Observable.combineLatest(placeList, placeImages)
.map(response => {
console.log(response);
return response;
})
.subscribe();