Angular 2 Emisores de eventos vs Sujeto
En Angular 2 ¿cuál es la diferencia entre Emisor de Eventos y Sujeto para anunciar un evento? Parece que los emisores de eventos son menos complicados de declarar....¿Qué camino prefiere Angular 2?
dataRefreshEvent = new EventEmitter();
private companyDataAnnouncedSource = new Subject();
companyDataAnnouncedSource$ = this.companyDataAnnouncedSource.asObservable();
3 answers
No Hay mucha diferencia. EventEmitter
extiende Subject
.
El equipo Angular2 enfatizó el hecho de que EventEmitter
no debe usarse para nada más que @Output()
s en componentes y directivas.
El equipo Angular ha declarado que pueden cambiar la implementación subyacente de EventEmitter
y romper el código de usuario que usa EventEmitter
para algo para lo que no estaba destinado. Esa es la principal diferencia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-03 13:06:34
También EventEmitter
se limpia automáticamente a diferencia de custom Subjects
que necesita para darse de baja en el gancho de ciclo de vida onDestroy
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-02 16:46:32
EventEmitter por defecto es síncrono, mientras que el Sujeto no lo es. Puede pasar una bandera a EventEmitter para que sea asíncrona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-19 09:57:58