Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 离子2/rxjs5/cordova网络插件事件可观察_Typescript_Angular_Ionic2_Rxjs5 - Fatal编程技术网

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

Typescript 离子2/rxjs5/cordova网络插件事件可观察,typescript,angular,ionic2,rxjs5,Typescript,Angular,Ionic2,Rxjs5,有并没有可能让rxjs在不在的情况下可以被观察到 我正在用离子2来尝试 我可以看到,有两个事件(在线/离线)在网络上。但是如何用rxjs与它们挂钩呢 看起来像这样的东西: const offline$ = Observable.fromEvent(CORDOVA_OFFLINE_EVENT); offline$.subscribe( function (connectionType) { console.log("connectionType", JSON.stringi

有并没有可能让rxjs在不在的情况下可以被观察到

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

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

例如:

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

或者,您可以使用EventEmitter,而不是分派CustomEvent,它将在处理程序中发出

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

您可以在EventEmitter或Observable中订阅:)

您可以按照文档中的说明正常订阅(
document.addEventListener(“脱机”,onOffline,false);
),在处理程序中,您可以使用EventEmitter发出,或者如果您仍然希望使用observable,则可以将自定义事件分派到文档中,并使
可观察。fromEvent(文档,'nameofevent')

例如:

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

或者,您可以使用EventEmitter,而不是分派CustomEvent,它将在处理程序中发出

networkEmitter = new EventEmitter();
window.addEventListener('offline', onOffline);
    onOffline(e) {
            this.networkEmitter.emit('wentOffline');
        }
您可以在EventEmitter或Observable中订阅:)