Typescript 离子2/rxjs5/cordova网络插件事件可观察
有并没有可能让rxjs在不在的情况下可以被观察到 我正在用离子2来尝试 我可以看到,有两个事件(在线/离线)在网络上。但是如何用rxjs与它们挂钩呢 看起来像这样的东西: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
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中订阅:)