Настраиваемый модуль утилизирует введенное значение после использования - Angular - PullRequest
0 голосов
/ 15 февраля 2020

В настоящее время я выполняю некоторую динамическую c настройку модуля в Angular. Пока все работает, но у меня проблемы с памятью в моем текущем методе.

В приведенном ниже примере я использую фабрику, чтобы создать конфигурацию и предоставить ее ModuleX. Этот объект CONFIG будет использоваться только один раз за время существования приложения - в этом примере для создания CONNECTION для какой-либо другой удаленной службы. CONNECTION будет интенсивно использоваться ModuleXService в течение жизни. CONFIG на другой стороне никогда не будет повторно использоваться.

Итак, мой вопрос: в настоящее время я полагаю, что этот объект будет жить в памяти в течение всего времени жизни моего Приложения? Создает ли это проблемы в огромных приложениях? Есть ли способ удалить / удалить CONFIG после использования?

//moduleX.module.ts
const CONFIG = new InjectionToken<Config>('CONFIG');
const CONNECTION = new InjectionToken<Connection>('CONNECTION');

class ModuleXService {
    constructor(@Inject(CONNECTION) private con: Connection) {}
}

export class ModuleX {
    static forRoot(options: any): ModuleWithProviders {
        return {
            ngModule: ModuleX,
            providers: [
                {
                    provide: CONFIG,
                    useFactory: options.useFactory,
                    deps: options.deps
                },
                {
                    provide: CONNECTION,
                    useFactory: (conf: Config) => createConnection(conf),
                    deps: [CONFIG]
                },
                ModuleXService
            ]
        };
    }
}
//app.module.ts
@NgModule({
    imports: [
        ConfigModule,
        ModuleX.forRoot({
            useFactory: (conf: ConfigService) => conf.getSomeConfig(),
            deps: [ConfigService]
        })
    ]
})
export class AppModule {}
...