Skip to content

Commit

Permalink
refactor(project): fix and optimize observables
Browse files Browse the repository at this point in the history
  • Loading branch information
ihadeed committed Jul 17, 2016
1 parent 0c0456a commit 4841f31
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 14 deletions.
3 changes: 1 addition & 2 deletions src/plugins/geolocation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,7 @@ export class Geolocation {
static watchPosition(options?: GeolocationOptions): Observable<Geoposition> {
return new Observable<Geoposition>(
(observer: any) => {
let cb = (data: Geoposition) => observer.next(data);
let watchId = navigator.geolocation.watchPosition(cb, options);
let watchId = navigator.geolocation.watchPosition(observer.next.bind(observer), options);
return () => navigator.geolocation.clearWatch(watchId);
}
);
Expand Down
18 changes: 9 additions & 9 deletions src/plugins/googlemaps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export class GoogleMap {
on(event: any): Observable<any> {
return new Observable(
(observer) => {
this._objectInstance.on(event, observer.next.bind);
this._objectInstance.on(event, observer.next.bind(observer));
return () => this._objectInstance.off(event);
}
);
Expand Down Expand Up @@ -388,8 +388,8 @@ export class GoogleMapsMarker {
addEventListener(event: any): Observable<any> {
return new Observable(
(observer) => {
this._objectInstance.addEventListener(event, observer.next.bind);
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
this._objectInstance.addEventListener(event, observer.next.bind(observer));
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
}
);
}
Expand Down Expand Up @@ -533,8 +533,8 @@ export class GoogleMapsCircle {
addEventListener(event: any): Observable<any> {
return new Observable(
(observer) => {
this._objectInstance.addEventListener(event, observer.next.bind);
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
this._objectInstance.addEventListener(event, observer.next.bind(observer));
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
}
);
}
Expand Down Expand Up @@ -624,8 +624,8 @@ export class GoogleMapsPolyline {
addEventListener(event: any): Observable<any> {
return new Observable(
(observer) => {
this._objectInstance.addEventListener(event, observer.next.bind);
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
this._objectInstance.addEventListener(event, observer.next.bind(observer));
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
}
);
}
Expand Down Expand Up @@ -715,8 +715,8 @@ export class GoogleMapsPolygon {
addEventListener(event: any): Observable<any> {
return new Observable(
(observer) => {
this._objectInstance.addEventListener(event, observer.next.bind);
return () => this._objectInstance.removeEventListener(event, observer.next.bind);
this._objectInstance.addEventListener(event, observer.next.bind(observer));
return () => this._objectInstance.removeEventListener(event, observer.next.bind(observer));
}
);
}
Expand Down
5 changes: 2 additions & 3 deletions src/plugins/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,8 @@ function wrapInstance (pluginObj: any, methodName: string, opts: any = {}) {
*/
function wrapEventObservable (event: string): Observable<any> {
return new Observable(observer => {
let callback = (status: any) => observer.next(status);
window.addEventListener(event, callback, false);
return () => window.removeEventListener(event, callback, false);
window.addEventListener(event, observer.next.bind(observer), false);
return () => window.removeEventListener(event, observer.next.bind(observer), false);
});
}

Expand Down

0 comments on commit 4841f31

Please sign in to comment.