1

是否有可能使用科尔多瓦网络连接插件中的fromEvent 方法使 rxjs 可观察。

我正在尝试使用 ionic 2。

我可以看到, cordova 网络连接插件中有两个事件(在线/离线)。但是如何用 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');
    }
);
4

1 回答 1

0

您可以像文档中所说的那样正常执行 ( 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 :)

于 2016-04-22T23:50:37.543 回答