mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-02-22 01:19:36 +08:00
refactor(project): fix and optimize observables
This commit is contained in:
parent
0c0456ada6
commit
4841f31a92
@ -154,8 +154,7 @@ export class Geolocation {
|
|||||||
static watchPosition(options?: GeolocationOptions): Observable<Geoposition> {
|
static watchPosition(options?: GeolocationOptions): Observable<Geoposition> {
|
||||||
return new Observable<Geoposition>(
|
return new Observable<Geoposition>(
|
||||||
(observer: any) => {
|
(observer: any) => {
|
||||||
let cb = (data: Geoposition) => observer.next(data);
|
let watchId = navigator.geolocation.watchPosition(observer.next.bind(observer), options);
|
||||||
let watchId = navigator.geolocation.watchPosition(cb, options);
|
|
||||||
return () => navigator.geolocation.clearWatch(watchId);
|
return () => navigator.geolocation.clearWatch(watchId);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -77,7 +77,7 @@ export class GoogleMap {
|
|||||||
on(event: any): Observable<any> {
|
on(event: any): Observable<any> {
|
||||||
return new Observable(
|
return new Observable(
|
||||||
(observer) => {
|
(observer) => {
|
||||||
this._objectInstance.on(event, observer.next.bind);
|
this._objectInstance.on(event, observer.next.bind(observer));
|
||||||
return () => this._objectInstance.off(event);
|
return () => this._objectInstance.off(event);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -388,8 +388,8 @@ export class GoogleMapsMarker {
|
|||||||
addEventListener(event: any): Observable<any> {
|
addEventListener(event: any): Observable<any> {
|
||||||
return new Observable(
|
return new Observable(
|
||||||
(observer) => {
|
(observer) => {
|
||||||
this._objectInstance.addEventListener(event, observer.next.bind);
|
this._objectInstance.addEventListener(event, observer.next.bind(observer));
|
||||||
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
|
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -533,8 +533,8 @@ export class GoogleMapsCircle {
|
|||||||
addEventListener(event: any): Observable<any> {
|
addEventListener(event: any): Observable<any> {
|
||||||
return new Observable(
|
return new Observable(
|
||||||
(observer) => {
|
(observer) => {
|
||||||
this._objectInstance.addEventListener(event, observer.next.bind);
|
this._objectInstance.addEventListener(event, observer.next.bind(observer));
|
||||||
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
|
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -624,8 +624,8 @@ export class GoogleMapsPolyline {
|
|||||||
addEventListener(event: any): Observable<any> {
|
addEventListener(event: any): Observable<any> {
|
||||||
return new Observable(
|
return new Observable(
|
||||||
(observer) => {
|
(observer) => {
|
||||||
this._objectInstance.addEventListener(event, observer.next.bind);
|
this._objectInstance.addEventListener(event, observer.next.bind(observer));
|
||||||
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
|
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -715,8 +715,8 @@ export class GoogleMapsPolygon {
|
|||||||
addEventListener(event: any): Observable<any> {
|
addEventListener(event: any): Observable<any> {
|
||||||
return new Observable(
|
return new Observable(
|
||||||
(observer) => {
|
(observer) => {
|
||||||
this._objectInstance.addEventListener(event, observer.next.bind);
|
this._objectInstance.addEventListener(event, observer.next.bind(observer));
|
||||||
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
|
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -174,9 +174,8 @@ function wrapInstance (pluginObj: any, methodName: string, opts: any = {}) {
|
|||||||
*/
|
*/
|
||||||
function wrapEventObservable (event: string): Observable<any> {
|
function wrapEventObservable (event: string): Observable<any> {
|
||||||
return new Observable(observer => {
|
return new Observable(observer => {
|
||||||
let callback = (status: any) => observer.next(status);
|
window.addEventListener(event, observer.next.bind(observer), false);
|
||||||
window.addEventListener(event, callback, false);
|
return () => window.removeEventListener(event, observer.next.bind(observer), false);
|
||||||
return () => window.removeEventListener(event, callback, false);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user