Наблюдаемое событие сетевого плагина ionic 2 / rxjs5 / cordova

возможно ли каким-то образом сделать rxjs наблюдаемым с помощью fromEvent из подключаемого модуля сетевого подключения Cordova.

Я пробую это с 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');
    }
);

person divramod    schedule 12.04.2016    source источник


Ответы (1)


Вы можете сделать это как обычно, как указано в документации (document.addEventListener("offline", onOffline, false);), и в обработчике вы можете испустить с помощью EventEmitter или, если вы все еще хотите использовать наблюдаемое, вы можете отправить настраиваемое событие в документ и сделать 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 :)

person Denko Mancheski    schedule 22.04.2016