无法读取undefined的属性'unsubscribe'

时间:2017-12-11 14:41:12

标签: firebase ionic-framework

我有一个离子项目。

我希望在订阅firebase返回时获取城市时取消订阅。

但出现问题,当我尝试取消订阅时会出现以下错误。

如何解决?

我的代码。

getCities() {
let i: any;
let a = this.firebaseProvider.getOtoparks()
  .subscribe(data => {
    for (i = 0; i < data.length; i++) {
      this.cities.push({
          name: data[i]['details']['sehir'],
          value: i,
        }
      );
    }
    // try to unsubscribe
    a.unsubscribe();
  });
}

enter image description here

1 个答案:

答案 0 :(得分:2)

最佳做法是在没有条件的情况下取消订阅时使用take(1)。

getCities() {
     let i: any;
     let a = this.firebaseProvider.getOtoparks()
         .take(1)
         .subscribe(data => {
             for (i = 0; i < data.length; i++) {
                 this.cities.push({
                     name: data[i]['details']['sehir'],
                     value: i,
                 });
             }
         });
}