离子2 / rxjs5 / cordova网络插件事件可观察

时间:2016-04-12 18:47:35

标签: typescript angular ionic2 rxjs5

以某种方式可以使用fromEvent method中的cordova network connection plugin来观察rxjs。

我正在尝试使用离子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');
    }
);

1 个答案:

答案 0 :(得分:0)

您可以像文档中所说的那样(document.addEventListener("offline", onOffline, false);),并且可以使用EventEmitter发出处理程序,或者如果您仍想使用observable,则可以将自定义事件发送到文档并生成{{ 1}}

示例:

Observable.fromEvent(document, 'nameofevent')

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

或者不是分派CustomEvent,你可以拥有一个将在处理程序中发出的EventEmitter

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

您可以订阅EventEmitter或Observable:)