Почему не сработал провайдер?

Токен:

export const SETTINGS = new InjectionToken<Settings>('SETTINGS');


Модуль - где резолвится токен:

providers: [
        ExecutionFiltersRepository,
        ExecutionSortingsRepository,
         {
            provide: SETTINGS,
            useFactory: executionSettingsFactory,
            deps: [ExecutionFiltersRepository, ExecutionSortingsRepository, HttpClient],
        },
]


Фабрика:

const executionSettingsFactory = (
    filtersRepository: ExecutionFiltersRepository,
    sortingRepository: ExecutionSortingsRepository,
    http: HttpClient,
) => {
    return () => {
        alert(1);
        return new ExecutionSettings(filtersRepository, sortingRepository, http);
    };
};


Сам класс ExecutionSettings:

@Injectable()
export class ExecutionSettings {
    constructor(
        private filtersRepository: ExecutionFiltersRepository,
        private sortingRepository: ExecutionSortingsRepository,
        private http: HttpClient,
    ) {    alert(2);}
}


Почему не вызывается alert(1); и alert(2);
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
@LastDragon
У вас фабрика `executionSettingsFactory` возвращает замыкание, скорее всего подразумевалось:

const executionSettingsFactory = (
    filtersRepository: ExecutionFiltersRepository,
    sortingRepository: ExecutionSortingsRepository,
    http: HttpClient,
) => {
    alert(1);
    return new ExecutionSettings(filtersRepository, sortingRepository, http);
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
там в консоли не написано че нить вроде "стрелочные функции не поддерживаются"?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы