收到onNext()后如何自动退订?
现在,我使用以下代码:
rxObservable
.compose(bindToLifecycle()) // unsubscribe automatically in onPause() if method was called in onResume()
.subscribe(new Subscriber<Object>() {
...
@Override
public void onNext(Object o) {
unsubscribe();
}
});
我已经创建了一个不断获取数据更新的socketService,并且在我的组件上订阅了我的getUpdates Observable。
我必须取消订阅stop操作,并再次订阅start操作按钮。
取消订阅在stop操作上效果很好,但之后它就不会在start操作按钮上再次订阅了。
这是我的socketService:
getUpdates() {
let sub = new Subject();
let subObservable = from(kioskSub)
this.socket.on('receive', (updates: any) =>
我正在尝试确定如何处理以下代码 let sub = myObservable.subscribe(
v => doThing(v),
e => handle(e),
() => sub.unsubscribe(),
) 问题是% 1。此代码不正确,因为myObservable已同步完成,将在完成时引发NPE。2.即使我怀疑这里的取消订阅调用是一个很好的做法。我情不自禁地觉得这可能没有必要,因为我还没有在其他地方看到过。 我读过这篇文章https://blog.angularindepth.com/why-you-have-to-unsubscribe
我在这里使用的是AngularFire2版本的代码,我使用该版本从我的一个组件上的数据库中获取一些成员。
当我在同一组件中调用这个注销时,我遇到了一个问题。我取消订阅订阅,但仍然在控制台中收到错误消息Exception was thrown by user callback. Error: permission_denied at /users/uid。我知道这是因为我不再登录,并且我的数据库规则不允许此读取操作。如果我已经取消订阅,我不知道为什么它还在尝试读取数据。
constructor(private afAuth: AngularFireAuth, private db: An