export declare class EventEmitter<T> extends Subject<T> {
/**
* Creates an instance of [EventEmitter], which depending on [isAsync],
* delivers events synchronously or asynchronously.
*/
constructor(isAsync?: boolean);
emit(value: T): void;
/**
* @deprecated - use .emit(value) instead
*/
next(value: any): void;
subscribe(generatorOrNext?: any, error?: any, complete?: any): any;
}
在官方 Angular 2 Typescript 定义中,似乎无法静音或取消订阅 EventEmitter。
随着页面使用相同的 EventEmitter,我会随着时间的推移得到回调
最佳答案
EventEmitter 扩展了 Subject。当您订阅一个主题时,您会得到一个 Subscription
,稍后您可以使用它来取消订阅。
someOutput:EventEmitter = new EventEmitter();
...
this.subscription = someOutput.subscribe(...);
...
this.subscription.unsubscribe();
提示
不要将 EventEmitter
用于除 @Output()
以外的任何其他用途。 Angular 不保证 EventEmitter
将继续扩展 Subject
或什至在未来以类似于 Subject
的方式工作。
关于angular - 如何取消订阅 Angular 2 中的 EventEmitter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36494509/