加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 在’Observable’类型中不存在属性’unsubscribe’

发布时间:2020-12-17 18:00:38 所属栏目:安全 来源:网络整理
导读:Typescript(原子编辑器中的tslint)给了我一个打字稿错误,但我无法弄清楚如何设置正确的类型. 错误信息: 聊天组件: private _chatObserver: Observablefirebase.database.DataSnapshot otherMethod () { this._chatObserver = this._chat.observe(alarmId)
Typescript(原子编辑器中的tslint)给了我一个打字稿错误,但我无法弄清楚如何设置正确的类型.

错误信息:

enter image description here

聊天组件:

private _chatObserver: Observable<firebase.database.DataSnapshot>

  otherMethod () {
        this._chatObserver = this._chat.observe(alarmId)
        this._chatObserver.subscribe(
          (messageSnap: firebase.database.DataSnapshot) => {
            this.messages.push(messageSnap.val())
          },error => {throw error})
    }

    ionViewDidLeave() {
       this._chatObserver.unsubscribe() 
    }

_chat提供者:

public observe (alarmId){
    let messagesRef = this._ref.child(`alarms/${alarmId}/messages`)

    const observable = Observable.create(observer => {
      messagesRef.on('child_added',(messageSnap) => {
            observer.next(messageSnap)
        },(error) => observer.error(error)
      )
      return () => {
        messagesRef.off('value')
      };
    });

    return observable
  }

解决方法

试试这个

private _chatObserver: Observable<firebase.database.DataSnapshot>
private _subscription:Subscription
otherMethod () {
    this._chatObserver = this._chat.observe(alarmId)
    this._subscription=this._chatObserver.subscribe(
      (messageSnap: firebase.database.DataSnapshot) => {
        this.messages.push(messageSnap.val())
      },error => {throw error})
}

ionViewDidLeave() {
   this._subscription.unsubscribe() 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读