Skip to content

Commit 7f9ff32

Browse files
sqlProvidersqlProvider
sqlProvider
authored and
sqlProvider
committed
[Version] added override to $sub method
1 parent d56a348 commit 7f9ff32

File tree

5 files changed

+24
-7
lines changed

5 files changed

+24
-7
lines changed

README.md

+10-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ bootstrap: [RootComponent]
4040
declare class PubSubService{
4141
private events: Object;
4242
$pub(event: string, eventObject?: any): void;
43-
$sub(event: string): <Observable<number>>;
43+
$sub(event: string): <Observable<any>>;
44+
$sub(event: string, callback: (value: any) => void, error?: (error: any) => void, complete?: () => void): Subscription;
4445
}
4546
```
4647

@@ -59,7 +60,7 @@ export class OverlayComponent implements OnInit, OnDestroy {
5960
}
6061
```
6162

62-
#### PubSubService.$sub(event: stirng): Observable<number>
63+
#### PubSubService.$sub(event: stirng): Observable<any>
6364

6465
Subscribe to channel.
6566

@@ -71,12 +72,19 @@ export class NavigationComponent implements OnInit, OnDestroy {
7172
constructor(private pubsub: EventDispatcherService) { }
7273

7374
ngOnInit() {
75+
// usage of $sub(event: string): <Observable<any>>;
7476
this.closeSidenavSub = this.pubsub.$sub('pleaseCloseSidenav').subscribe((from) => {
7577
from ? this.sidenavOpened = false : void 0
7678
});
79+
80+
// usage of $sub(event: string, callback: (value: any) => void, error?: (error: any) => void, complete?: () => void): Subscription;
81+
this.openSidenavSub = this.pubsub.$sub('pleaseOpenSidenav', (from) => {
82+
from ? this.sidenavOpened = false : void 0
83+
});
7784
}
7885
ngOnDestroy() {
7986
this.closeSidenavSub.unsubscribe();
87+
this.openSidenavSub.unsubscribe();
8088
}
8189
```
8290

angular2-pubsub.service.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,18 @@ export class PubSubService {
88

99
constructor() { }
1010

11-
$sub(event: string) {
11+
$sub(event: string, callback: (value: any) => void, error?: (error: any) => void, complete?: () => void) {
1212
if (event == undefined) {
1313
console.warn('[PubSub Service] => Subscription method must get event name.');
1414
return;
1515
};
1616

1717
if (this.events[event] === undefined)
18-
this.events[event] = new BehaviorSubject<number>(0);
19-
20-
return <Observable<number>>this.events[event].asObservable();
18+
this.events[event] = new BehaviorSubject<any>(0);
19+
if (!callback || typeof callback !== 'function')
20+
return <Observable<any>>this.events[event].asObservable();
21+
else
22+
return (<Observable<any>>this.events[event].asObservable()).subscribe(callback, error, complete);
2123
}
2224
$pub(event: string, eventObject?: any) {
2325
if (event == undefined) {

bower.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "angular2-pubsub",
33
"description": "Pub/Sub service for Angular 2",
4+
"version": "1.1.0",
45
"main": "",
56
"authors": [
67
"Semih KEŞKEK"

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular2-pubsub",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "Pub/Sub service for Angular 2",
55
"repository": {
66
"type": "git",

tsconfig.json

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES6",
4+
"experimentalDecorators": true
5+
}
6+
}

0 commit comments

Comments
 (0)