używam Angular2 v2.2.3Angular2 - asynchroniczny wtrysk zależność
Utworzyłem wspólny moduł z forRoot() funkcja, podobnie jak to:
...
public static forRoot(): ModuleWithProviders {
return {
ngModule: CommonsModule,
providers: [
SomeOtherDependency,
{
provide: ConfigService,
useFactory: ConfigFactory,
deps: [Http]
}
]
};
Oto moja ConfigFactory:
export function ConfigFactory(http:Http):Promise<ConfigService> {
return http.get('confg/config.json').map(r => {
return new ConfigService(r);
}).toPromise();
}
Próbowałem również zwrócić obietnicę i obserwować.
SomeOtherDependency zdefiniowana w dostawcach wymaga usługi ConfigService. Problem polega na tym, że Angular nie wstrzykuje wartości z obietnicą, ale obiecuje sobie.
Jak mogę wymusić kątowe oczekiwanie, aż obietnica zostanie rozwiązana z odpowiednią zależnością i dopiero wtedy wprowadzić ją do innych zależności?
Próbowałem różnych podejść i zawsze wartość zastrzyku jest obiecująca lub obserwowalna. Podobnie jak iniektor ignoruje, jaki typ fabryki powrócił. Muszę załadować kilka plików json zanim zacznie się cała aplikacja
Możliwy duplikat [kątowe 2 - Usługi spożywających usługodawców przed wywołaniem metody] (http://stackoverflow.com/questions/38127741/angular-2-services-consuming-other-services-before-call-a-method) – estus
Sprawdź także komentarze do tego pytania http://stackoverflow.com/questions/40522938/lazy-loading-module -with-app-initializer? noredirect = 1 # comment68288686_40522938 – yurzui
Widziałem te tematy, zanim zapytałem. Nie działają dla mnie. –