Angular 4 - 然后返回null
我尝试从promise中获取一些数据,但没有返回。有人可以帮助我吗?怎么了??Angular 4 - 然后返回null
回归测试zone_symbol__state:空 __zone_symbol__value:阵列(0)__原:对象
load(): Promise <any> {
const test = this.http
.get(this.translationPath)
.toPromise()
.then(
this.createTranslationProviders
).catch((err: any) => {
Promise.resolve();
console.log('resolve' + err)
});
return test; // this is always NULL
}
private createTranslationProviders(response: Response) {
let translationProvider: any;
translationProvider = [
// { provide: TRANSLATIONS, useValue: response },
// { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' },
{
provide: LOCALE_ID,
useValue: 'de_DE'
}
];
return translationProvider;
}
你TranslationService返回一个承诺提供者名单,但你不加这个提供者给模块。你可以看看NG-conf的翻译回购是怎样做的,而无需使用APP_INITIALIZER但与供应商的货清单和boostraping模块与他们之后:
https://github.com/ocombe/i18n-demo/blob/c3a063bb51d097eee14f889bce48b4bb9df9d1da/src/main.ts#L12
getTranslationProviders(environment.production).then((providers:
CompilerOptions[]) => {
const options = { providers };
platformBrowserDynamic().bootstrapModule(AppModule, options);
});
另外要注意,它不此刻不再与AOT合作。您可能会发现下面的链接会有所帮助:
[国际化]计划v4和超越 - https://github.com/angular/angular/issues/16477
迷失东京(NG-conf的2017) - https://www.youtube.com/watch?v=dihyu1a2bPc
感谢Julia,但我没有使用system.js来读取文件。我想知道,如何使用角度http请求呢?如何将它导入模块导出函数? – KRav
这个回购使用angular-cli也不使用systemJS,但webpack。你为什么想到systemJS?如果你考虑System.import,它与SystemJS无关,但这是基于标准加载异步内容的webpack函数。 –
是的,“System.import”的原因 - 感谢将光线带入黑暗。 “System.import”直到现在还没有工作。系统..找不到...或其他东西。我将检查它为什么不起作用...我是否需要将“系统”包含在某处? – KRav
什么是你在做什么?你为什么要兑现承诺? – Aravind
'.then()'不返回一个Promise。它实际上没有任何回报。 –
可能重复[为什么我的承诺返回undefined?](https://stackoverflow.com/questions/42577647/why-is-my-promise-returning-undefined) –