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
Правильный подход к вашей проблеме - предоставить фабрике токен 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.
});
}
Для получения дополнительной информации вы можете проверить здесь или здесь .
для настройки перед использованием любого компонента и независимо от точки входа в ваше приложение, вы можете рассмотреть возможность использования APP_INITIALIZER
.
APP_INITIALIZER: обратный вызов вызывается до инициализации приложения. Все зарегистрированные инициализаторы могут при желании вернуть Обещание. Все функции инициализатора, которые возвращают Promises, должны быть разрешены до загрузки приложения. Если один из инициализаторов не удается разрешить, приложение не загружается.
blockquote>ссылка: https://angular.io/guide/dependency-injection-providers#predefined-tokens-and-multiple-providers