【问题标题】:Not able to unsubscribe observables in ionic 3 app无法取消订阅 ionic 3 应用程序中的 observables
【发布时间】:2019-10-08 02:23:23
【问题描述】:

我在我的应用程序中使用 ionic 3,我在 android 设备中使用 cordova-plugin-network-information 进行互联网连接检测事件,我可以订阅它,但无法取消订阅它。

我试过 rxjs,订阅取消订阅 observables,但没有得到预期的结果。

以下是我的代码:

import {Subscription } from 'rxjs/Subscription';

private _netConnection : Subscription = new Subscription();

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

_netConnection.unsubscribe();

但是enter code hereabove _netConnection.unsubscribe() 不起作用,因为当连接可用时我仍然收到警报。

【问题讨论】:

    标签: typescript rxjs ionic3


    【解决方案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();
    });
    

    【讨论】:

    • 谢谢,我已经实现了 takeWhile,但效果还是一样的。我正在为 android 应用程序开发 ionic 3 框架。是本机设备的问题。我认为订阅后的 calue 保留在 dom 中,当我试图取消订阅时,它不起作用。它被激活到 DOM 中。有没有办法通过我的代码从 DOM 中删除值。
    • DOM 中有什么?你的问题没有任何意义。
    【解决方案2】:

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

    喜欢这个setTimeout(()=&gt; _netConnection.unsubscribe());

    【讨论】:

    • 根据我在应用程序中的需要,我实现了 setInterval(()=> _netConnection.unsubscribe());但这也没有用。
    • 有没有办法通过应用程序中的一些代码从 DOM 中删除 _netConnection 对象。 AS 取消订阅没有任何作用。
    • 基本上我需要在特定条件下运行 _netConnection.subscribe(),当该条件为假时,我必须取消订阅。
    • DOM中有什么,我不明白你的问题是什么。
    • 文档对象模型 (DOM) 浏览器中的树状结构,其中包含 html 元素和属性。由于这些元素和属性很容易被 javascript 处理。
    猜你喜欢
    • 2017-03-26
    • 2020-10-28
    • 1970-01-01
    • 2017-08-24
    • 2017-12-17
    • 2013-04-16
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多