En Angular 9, la opción de decorador inyectable providedIn en tiene un nuevo valor llamado any . ¿Cuál es la diferencia entre root y any ?
¿Se considera un servicio un singleton en el caso de que use any ?
@Injectable({providedIn: 'any'}) class UsefulService { }La diferencia entre la root y any según la documentación oficial :
root : el inyector de nivel de aplicación en la mayoría de las aplicaciones.
platform : un inyector de plataforma singleton especial compartido por todas las aplicaciones en la página.
any : El inyector NgModule que recibe la resolución.
Para obtener más detalles, consulte este artículo .
¿Se considera un servicio un singleton en el caso de que use any ? - no
Creo que las respuestas proporcionadas no son realmente claras. Sin embargo, @jkonst, @schrödingcöder y @Bruce tienen razón en el comentario.
Para cualquiera enviado aquí por Google,
any not Proporciona una instancia única en cada módulo. (debe decir solo en cada módulo compartido)
Lo que significa una instancia en cada ámbito de inyección
de https://angular.io/guide/providers
Con provideIn: 'any', todos los módulos cargados con entusiasmo comparten una instancia única; sin embargo, los módulos con carga diferida obtienen cada uno su propia instancia única, como se muestra en el siguiente diagrama.
angular 9 presenta una nueva opción para el decorador inyectable ProvidedIn además de las opciones anteriores de root y módulo, ahora tenemos dos platform de opciones adicionales, any
🔵 raíz : esto le dice a Angular que proporcione el servicio en el nivel raíz de la aplicación y el servicio se creará una vez ( servicio singleton ) y proporcionará la misma instancia en cada módulo que inyecta el token.
🔵 cualquiera : proporciona una instancia única en cada módulo (incluidos los módulos perezosos) que inyecta el token.
🔵 plataforma — Especificar provideIn: 'platform' hace que el servicio esté disponible en un inyector de plataforma singleton especial que es compartido por todas las aplicaciones en la página.
una mirada detallada a los alcances de proveedor 'raíz' y 'cualquier' de Angular