无法取消订阅ionic 3应用中的可观察对象

时间:2019-05-21 16:19:34

标签: typescript rxjs ionic3

我正在为我的应用程序使用ionic 3,我正在使用cordova-plugin-network-information进行android设备中的Internet连接检测事件,我可以订阅它,但不能取消订阅。

我曾尝试使用rxjs,Subscription从可观察对象退订,但未获得预期结果。

以下是我的代码:

import {Subscription } from 'rxjs/Subscription';

private _netConnection : Subscription = new Subscription();

_netConnection = this.network.onConnect().subscribe(()=>{
          alert("connected");
})

_netConnection.unsubscribe();

但是_netConnection.unsubscribe()上方的enter code here无法正常工作,因为当连接可用时,我仍然会收到警报。

2 个答案:

答案 0 :(得分:1)

使用直到...

import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

private finalize = new Subject<void>();

this.network.onConnect().pipe(takeUntil(finalise)).subscribe(()=>{
  alert("connected");
  finalise.next();
});

答案 1 :(得分:0)

我认为您应该在_netConnection.unsubscribe()中写上setTimeout

像这样setTimeout(()=> _netConnection.unsubscribe());