Компонент приложения инициализируется раньше всех других компонентов?

from datetime import datetime, timedelta
from dateutil import parser
def getDateRange(begin, end):
    """  """
    beginDate = parser.parse(begin)
    endDate =  parser.parse(end)
    delta = endDate-beginDate
    numdays = delta.days + 1
    dayList = [datetime.strftime(beginDate + timedelta(days=x), '%Y%m%d') for x in range(0, numdays)]
    return dayList
0
задан Greg Harner 18 January 2019 в 14:54
поделиться

2 ответа

Правильный подход к вашей проблеме - предоставить фабрике токен APP_INITIALIZER.

Пример:

@NgModule({
    providers: [
        {
            provide: APP_INITIALIZER,
            useFactory: appInitializerFactory,
            deps: [/* Your dependencies */],
            multi: true,
        },
    ],
})
export class AppModule {}

export function appInitializerFactory(/* The injection of your dependencies, in the same order as above */) {
    return () =>
        new Promise<any>((resolve: any) => {
            // Do your async work, call `resolve()` when done.
        });
}

Для получения дополнительной информации вы можете проверить здесь или здесь .

0
ответ дан tiagodws 18 January 2019 в 14:54
поделиться

для настройки перед использованием любого компонента и независимо от точки входа в ваше приложение, вы можете рассмотреть возможность использования APP_INITIALIZER.

APP_INITIALIZER: обратный вызов вызывается до инициализации приложения. Все зарегистрированные инициализаторы могут при желании вернуть Обещание. Все функции инициализатора, которые возвращают Promises, должны быть разрешены до загрузки приложения. Если один из инициализаторов не удается разрешить, приложение не загружается.

ссылка: https://angular.io/guide/dependency-injection-providers#predefined-tokens-and-multiple-providers

0
ответ дан dee zg 18 January 2019 в 14:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: