角2 eventEmitter不行
问题描述:
所有表现良好的手册中,下面的代码:
WebSocketBroadcaster角2 eventEmitter不行
import {EventEmitter, Injectable} from "@angular/core";
@Injectable()
export class WebSocketBroadcaster {
ee: EventEmitter<any> = new EventEmitter<any>();
}
WebSocketService code
引导
bootstrap(AppComponent, [
appRouterProviders,
disableDeprecatedForms(),
provideForms(),
WebSocketBroadcaster
])
客户端组件code
console.log(data)
在client.component不起作用console.log(this.broadcaster.ee);
输出
答
EventEmitter
不应该在服务中使用。 EventEmitter
仅适用于组件中的@Output()
属性。
服务中使用Observable
和Subject
代替。
任何链接,例如?是使用EventEmitter禁止或只是不推荐? –
Misko Hevery在GitHub发布的评论中提到,即使EventEmitter目前基于“Subject”,在任何时候都可能随时更改,恕不另行通知。目前还没有任何已知问题用于其他方面,除了上面提到的,您的应用可能会与未来的Dart版本冲突。 –