Rxjs:map方法不能在combineLatest上执行

时间:2017-09-29 09:48:25

标签: javascript angular rxjs angularfire2

我尝试将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流未完成。

1 个答案:

答案 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();