有一个事件发射器:
@Output() edit: EventEmitter<any> = new EventEmitter();
Run Code Online (Sandbox Code Playgroud)
如何检查是否有人订阅了 Angular 中的 EventEmitter?
AngularEventEmitter
是一个 RXJS Subject
:
class EventEmitter<T> extends Subject<T>
Run Code Online (Sandbox Code Playgroud)
Subject.observed: bool
-- 如果有 1 个或多个订阅者则为 true
/**
* A Subject is a special type of Observable that allows values to be
* multicasted to many Observers. Subjects are like EventEmitters.
*
* Every Subject is an Observable and an Observer. You can subscribe to a
* Subject, and you can call next to feed values as well as error and complete.
*/
export class Subject<T> extends Observable<T> implements SubscriptionLike {
...
private currentObservers = new Map<number, Observer<T>>()
get observed() {
return this.currentObservers.size > 0;
}
Run Code Online (Sandbox Code Playgroud)
EventEmitter
,而是考虑BehaviorSubject
or ReplaySubject
。请参阅:委托:Angular 中的 EventEmitter 或 Observable
归档时间: |
|
查看次数: |
2911 次 |
最近记录: |