【发布时间】:2018-04-05 00:35:01
【问题描述】:
Typescript(原子编辑器中的 tslint)给我一个 typescript 错误,但我不知道如何设置正确的类型。
聊天组件:
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()
}
_聊天提供者:
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
}
【问题讨论】:
-
unsubscribe应该在Subscription上调用 - 而不是在Observable上调用。您对subscribe的调用将返回Subscription。
标签: angular typescript ionic-framework rxjs tslint