【问题标题】:ionic 2 / rxjs5 / cordova network plugin event observableionic 2 / rxjs5 / cordova 网络插件事件可观察
【发布时间】:2016-04-12 18:47:35
【问题描述】:

是否有可能通过fromEvent methodcordova network connection plugin 中观察到rxjs。

我正在尝试使用 ionic 2。

我可以看到,cordova network connection plugin 中有两个事件(在线/离线)。但是如何用 rxjs 钩住它们呢?

看起来像这样的东西:

const offline$ = Observable.fromEvent(CORDOVA_OFFLINE_EVENT);
offline$.subscribe(
    function (connectionType) {
        console.log("connectionType", JSON.stringify(connectionType));
    },
    function (err) {
        console.log('Error: ' + err);
    },
    function () {
        console.log('Completed');
    }
);

【问题讨论】:

    标签: typescript angular ionic2 rxjs5


    【解决方案1】:

    您可以像文档中所说的那样正常执行 (document.addEventListener("offline", onOffline, false);),并且在处理程序中您可以使用 EventEmitter 发出,或者如果您仍然想使用 observable,您可以将自定义事件发送到文档并生成 Observable.fromEvent(document, 'nameofevent')

    例子:

    window.addEventListener('offline', this.onOffline);
    onOffline(e) {
            var event = new CustomEvent('onoffline');
            event['offlineTimestamp'] = new Date()
            document.dispatchEvent(event);
        }
    

    不仅仅是this.networkObservable = Observable.fromEvent(document, 'onoffline');

    或者代替调度 CustomEvent,你可以有一个 EventEmitter,它将在处理程序中发出

    networkEmitter = new EventEmitter();
    window.addEventListener('offline', onOffline);
        onOffline(e) {
                this.networkEmitter.emit('wentOffline');
            }
    

    您可以订阅 EventEmitter 或 Observable :)

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 2020-02-25
      • 2016-06-09
      • 2023-03-30
      • 2017-01-14
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      相关资源
      最近更新 更多