1

cordova ネットワーク接続プラグインからfromEvent メソッドを使用して rxjs を監視可能にすることは何とか可能ですか?

私はionic 2でそれを試しています。

コルドバ ネットワーク接続プラグインに 2 つのイベント (オンライン/オフライン) があることがわかります。しかし、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 に答える