Angularfire拍摄并绘制地图

时间:2018-12-19 20:53:56

标签: angular angularfire2

我有一个带有angularfire2的小角度应用程序(Angular 6),现在我只想选择一个按日期表示的对象,我可以获取.take(1)或.map(),但不能一起获取,怎么办?

我尝试了以下方法

    return this.db.list(this.BASE_PATH, ref => ref.orderByChild(this.PUBLISH_DATE).limitToLast(1)).snapshotChanges().pipe(take(1)).pipe(map(res => {
      return res.map(item => {
        console.log(item);
      });
    }));

1 个答案:

答案 0 :(得分:1)

take(n)仅采用可观察的前n个发射,而不是发射的阵列中的n个项目,有关take运算符的更多信息,请参见here

您可以只使用map对数组进行排序/过滤并返回所需的值,然后进行订阅。做这样的事情:

this.db.list(this.BASE_PATH, ref => ref.orderByChild(this.PUBLISH_DATE).limitToLast(1)).snapshotChanges()
      .pipe(map(arr => arr.sort((a, b) => b.date - a.date)[0]))
      .subscribe(item => {
        console.log(item);
      });

编辑: This stackblitz可能在展示它方面做得更好。