import { Subject } from './Subject'; import { Observer } from './types'; import { Subscription } from './Subscription'; /** * We need this JSDoc comment for affecting ESDoc. * @ignore * @extends {Ignored} */ export class SubjectSubscription<T> extends Subscription { closed: boolean = false; constructor(public subject: Subject<T>, public subscriber: Observer<T>) { super(); } unsubscribe() { if (this.closed) { return; } this.closed = true; const subject = this.subject; const observers = subject.observers; this.subject = null; if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { return; } const subscriberIndex = observers.indexOf(this.subscriber); if (subscriberIndex !== -1) { observers.splice(subscriberIndex, 1); } } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
observable | Folder | 0755 |
|
|
operators | Folder | 0755 |
|
|
scheduled | Folder | 0755 |
|
|
scheduler | Folder | 0755 |
|
|
symbol | Folder | 0755 |
|
|
testing | Folder | 0755 |
|
|
util | Folder | 0755 |
|
|
AsyncSubject.ts | File | 1.21 KB | 0644 |
|
BehaviorSubject.ts | File | 1.13 KB | 0644 |
|
InnerSubscriber.ts | File | 732 B | 0644 |
|
Notification.ts | File | 4.81 KB | 0644 |
|
Observable.ts | File | 15.79 KB | 0644 |
|
Observer.ts | File | 410 B | 0644 |
|
Operator.ts | File | 184 B | 0644 |
|
OuterSubscriber.ts | File | 646 B | 0644 |
|
ReplaySubject.ts | File | 4.18 KB | 0644 |
|
Rx.ts | File | 9.46 KB | 0644 |
|
Scheduler.ts | File | 2.48 KB | 0644 |
|
Subject.ts | File | 4.81 KB | 0644 |
|
SubjectSubscription.ts | File | 846 B | 0644 |
|
Subscriber.ts | File | 9.23 KB | 0644 |
|
Subscription.ts | File | 7.88 KB | 0644 |
|
config.ts | File | 1.4 KB | 0644 |
|
innerSubscribe.ts | File | 3.18 KB | 0644 |
|
types.ts | File | 3.05 KB | 0644 |
|
umd.ts | File | 598 B | 0644 |
|